From 0800f2c299cda85d3d929671e25225d0d8ff592b Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Fri, 22 Nov 2024 15:40:08 +0100 Subject: [PATCH 01/44] feat: Basic structure of the OnboardingActivity --- .../swisstransfer/ui/OnboardingActivity.kt | 18 ++ .../ui/components/SwissTransferFab.kt | 4 +- .../ui/screen/onboarding/OnboardingScreen.kt | 232 ++++++++++++++++++ .../swisstransfer/ui/theme/CustomShapes.kt | 3 +- 4 files changed, 255 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt index 3dac23368..71415e3c1 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt @@ -17,13 +17,31 @@ */ package com.infomaniak.swisstransfer.ui +import android.content.Intent import android.os.Bundle import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge +import androidx.compose.material3.Surface +import com.infomaniak.swisstransfer.ui.screen.onboarding.OnboardingScreen +import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme class OnboardingActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { enableEdgeToEdge() super.onCreate(savedInstanceState) + + setContent { + SwissTransferTheme { + Surface { + OnboardingScreen( + goToMainActivity = { + startActivity(Intent(this, MainActivity::class.java)) + finish() + } + ) + } + } + } } } diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/components/SwissTransferFab.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/components/SwissTransferFab.kt index dde87a4c2..493a59b0c 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/components/SwissTransferFab.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/components/SwissTransferFab.kt @@ -29,6 +29,7 @@ import androidx.compose.material3.FloatingActionButtonElevation import androidx.compose.material3.Icon import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp @@ -45,6 +46,7 @@ fun SwissTransferFab( modifier: Modifier = Modifier, fabType: FabType = FabType.NORMAL, elevation: FloatingActionButtonElevation = FloatingActionButtonDefaults.elevation(), + icon: ImageVector = AppIcons.Add, onClick: () -> Unit, ) { FloatingActionButton( @@ -55,7 +57,7 @@ fun SwissTransferFab( elevation = elevation, ) { Icon( - imageVector = AppIcons.Add, + imageVector = icon, contentDescription = stringResource(id = R.string.contentDescriptionCreateNewTransferButton), ) } diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt new file mode 100644 index 000000000..54546ed55 --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -0,0 +1,232 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.infomaniak.swisstransfer.ui.screen.onboarding + +import androidx.activity.compose.BackHandler +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.pager.HorizontalPager +import androidx.compose.foundation.pager.PagerState +import androidx.compose.foundation.pager.rememberPagerState +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import com.infomaniak.swisstransfer.R +import com.infomaniak.swisstransfer.ui.components.LargeButton +import com.infomaniak.swisstransfer.ui.components.SwissTransferFab +import com.infomaniak.swisstransfer.ui.images.AppImages +import com.infomaniak.swisstransfer.ui.images.illus.ArrowRightCurved +import com.infomaniak.swisstransfer.ui.images.illus.matomo.Matomo +import com.infomaniak.swisstransfer.ui.images.illus.uploadAd.MetallicSafe +import com.infomaniak.swisstransfer.ui.images.illus.uploadAd.SwissWithFlag +import com.infomaniak.swisstransfer.ui.theme.Dimens +import com.infomaniak.swisstransfer.ui.theme.Margin +import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme +import com.infomaniak.swisstransfer.ui.utils.PreviewLargeWindow +import com.infomaniak.swisstransfer.ui.utils.PreviewSmallWindow +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch + +@Composable +fun OnboardingScreen(goToMainActivity: () -> Unit) { + val onboardingPages = listOf( + OnboardingPage( + background = AppImages.AppIllus.Matomo.image(), + illustration = { + Image(AppImages.AppIllus.MetallicSafe.image(), contentDescription = null) + }, + text = { + TitleAndDescription( + "Salut", + "C'est cool comme app je vous conseil de l'essayer vous verrez que c'est toute une expérience" + ) + } + ), + OnboardingPage( + background = AppImages.AppIllus.Matomo.image(), + illustration = { + Image(AppImages.AppIllus.SwissWithFlag.image(), contentDescription = null) + }, + text = { + TitleAndDescription( + "Salut", + "C'est cool comme app je vous conseil de l'essayer vous verrez que c'est toute une expérience" + ) + } + ), + OnboardingPage( + background = AppImages.AppIllus.Matomo.image(), + illustration = { + Image(AppImages.AppIllus.MetallicSafe.image(), contentDescription = null) + }, + text = { + TitleAndDescription( + "Salut", + "C'est cool comme app je vous conseil de l'essayer vous verrez que c'est toute une expérience" + ) + } + ), + ) + + val pagerState = rememberPagerState(pageCount = { onboardingPages.size }) + val coroutineScope = rememberCoroutineScope() + + BackHandler(pagerState.currentPage > 0) { + coroutineScope.launch(Dispatchers.IO) { + pagerState.animateScrollToPage(pagerState.currentPage - 1) + } + } + + OnboardingScaffold( + pagerState = pagerState, + onboardingPages = onboardingPages, + bottomContent = { BottomContent(pagerState, onboardingPages.size, goToMainActivity) }, + ) +} + +@Composable +private fun TitleAndDescription(title: String, description: String) { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + Text(textAlign = TextAlign.Center, text = title, style = SwissTransferTheme.typography.h1) + Text( + modifier = Modifier + .widthIn(max = Dimens.DescriptionWidth) + .padding(Margin.Medium), + textAlign = TextAlign.Center, + text = description, + style = SwissTransferTheme.typography.specificLight22 + ) + } +} + +@Composable +private fun BottomContent( + pagerState: PagerState, + pageCount: Int, + startMainActivity: () -> Unit, +) { + val coroutineScope = rememberCoroutineScope() + val isLastPage = pagerState.currentPage >= pageCount - 1 + + Box( + contentAlignment = Alignment.Center, + modifier = Modifier + .fillMaxWidth() + .height(136.dp), + ) { + when { + isLastPage -> LargeButton(R.string.appName, onClick = startMainActivity) + else -> SwissTransferFab( + icon = AppImages.AppIllus.ArrowRightCurved, + onClick = { + coroutineScope.launch(Dispatchers.IO) { pagerState.animateScrollToPage(pagerState.currentPage + 1) } + } + ) + } + } +} + +@Composable +private fun OnboardingScaffold( + pagerState: PagerState, + onboardingPages: List, + bottomContent: @Composable () -> Unit, +) { + Scaffold { paddingValues -> + Column(modifier = Modifier.padding(paddingValues)) { + HorizontalPager(pagerState, modifier = Modifier.weight(1f)) { + OnboardingPageContent(page = onboardingPages[it]) + } + + HorizontalPagerIndicator(Modifier.padding(vertical = 32.dp), pagerState) + + bottomContent() + } + } +} + +@Composable +fun ColumnScope.HorizontalPagerIndicator(modifier: Modifier = Modifier, pagerState: PagerState) { + Row( + modifier + .wrapContentHeight() + .fillMaxWidth() + .align(Alignment.CenterHorizontally) + .padding(bottom = 8.dp), + horizontalArrangement = Arrangement.Center + ) { + repeat(pagerState.pageCount) { iteration -> + val color = if (pagerState.currentPage == iteration) Color.DarkGray else Color.LightGray + Box( + modifier = Modifier + .padding(2.dp) + .clip(CircleShape) + .background(color) + .size(16.dp) + ) + } + } +} + +@Composable +fun OnboardingPageContent(page: OnboardingPage) { + Box( + modifier = Modifier.fillMaxSize(), + contentAlignment = Alignment.Center, + ) { + Image(page.background, contentDescription = null, modifier = Modifier.fillMaxSize()) + Column( + modifier = Modifier.fillMaxHeight(), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.SpaceEvenly, + ) { + with(page) { + illustration() + text() + } + } + } +} + +data class OnboardingPage( + val background: ImageVector, + val illustration: @Composable () -> Unit, + val text: @Composable () -> Unit, +) + +@PreviewSmallWindow +@PreviewLargeWindow +@Composable +private fun OnboardingScreenPreview() { + SwissTransferTheme { + Surface { + OnboardingScreen {} + } + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/theme/CustomShapes.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/theme/CustomShapes.kt index 2093be2fc..a0cbccc3a 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/theme/CustomShapes.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/theme/CustomShapes.kt @@ -17,12 +17,13 @@ */ package com.infomaniak.swisstransfer.ui.theme +import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.ui.unit.dp object CustomShapes { val NONE = RoundedCornerShape(0) - val ROUNDED = RoundedCornerShape(50) + val ROUNDED = CircleShape val EXTRA_SMALL = RoundedCornerShape(4.dp) val SMALL = RoundedCornerShape(8.dp) val MEDIUM = RoundedCornerShape(16.dp) From 969c48c3766df8165fb7635cdcbab7ffa24cdfea Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Fri, 22 Nov 2024 16:42:56 +0100 Subject: [PATCH 02/44] feat: Animate the onboarding button --- .../ui/images/icons/ArrowRight.kt | 60 +++++++++++++++ .../ui/screen/onboarding/OnboardingScreen.kt | 73 ++++++++++++++++--- 2 files changed, 124 insertions(+), 9 deletions(-) create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/images/icons/ArrowRight.kt diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/icons/ArrowRight.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/icons/ArrowRight.kt new file mode 100644 index 000000000..e0da18ab4 --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/icons/ArrowRight.kt @@ -0,0 +1,60 @@ +package com.infomaniak.swisstransfer.ui.images.icons + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.size +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.infomaniak.swisstransfer.ui.images.AppImages +import com.infomaniak.swisstransfer.ui.images.AppImages.AppIcons +import androidx.compose.ui.graphics.StrokeCap.Companion.Round as strokeCapRound +import androidx.compose.ui.graphics.StrokeJoin.Companion.Round as strokeJoinRound + +val AppIcons.ArrowRight: ImageVector + get() { + if (_arrowRight != null) { + return _arrowRight!! + } + _arrowRight = Builder( + name = "ArrowRight", defaultWidth = 24.0.dp, defaultHeight = 24.0.dp, viewportWidth = 24.0f, viewportHeight = 24.0f + ).apply { + path( + fill = null, + stroke = SolidColor(Color(0xFF9F9F9F)), + strokeLineWidth = 2.5f, + strokeLineCap = strokeCapRound, + strokeLineJoin = strokeJoinRound, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(1.25f, 12.0f) + horizontalLineToRelative(21.5f) + moveToRelative(-8.5f, 8.0f) + lineToRelative(8.5f, -8.0f) + lineToRelative(-8.5f, -8.0f) + } + }.build() + return _arrowRight!! + } + +private var _arrowRight: ImageVector? = null + +@Preview +@Composable +private fun Preview() { + Box { + Image( + imageVector = AppIcons.ArrowRight, + contentDescription = null, + modifier = Modifier.size(AppImages.previewSize) + ) + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt index 54546ed55..e967b6116 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -18,6 +18,9 @@ package com.infomaniak.swisstransfer.ui.screen.onboarding import androidx.activity.compose.BackHandler +import androidx.compose.animation.core.animateDpAsState +import androidx.compose.animation.core.animateFloatAsState +import androidx.compose.animation.core.tween import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.layout.* @@ -25,23 +28,26 @@ import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.PagerState import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material3.Icon import androidx.compose.material3.Scaffold import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue import androidx.compose.runtime.rememberCoroutineScope 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.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import com.infomaniak.swisstransfer.R -import com.infomaniak.swisstransfer.ui.components.LargeButton -import com.infomaniak.swisstransfer.ui.components.SwissTransferFab +import com.infomaniak.swisstransfer.ui.components.SwissTransferButton import com.infomaniak.swisstransfer.ui.images.AppImages -import com.infomaniak.swisstransfer.ui.images.illus.ArrowRightCurved +import com.infomaniak.swisstransfer.ui.images.icons.ArrowRight import com.infomaniak.swisstransfer.ui.images.illus.matomo.Matomo import com.infomaniak.swisstransfer.ui.images.illus.uploadAd.MetallicSafe import com.infomaniak.swisstransfer.ui.images.illus.uploadAd.SwissWithFlag @@ -125,6 +131,11 @@ private fun TitleAndDescription(title: String, description: String) { } } +private const val BUTTON_ANIM_DURATION = 300 +private const val BUTTON_ANIM_DELAY = BUTTON_ANIM_DURATION / 2 +private const val BUTTON_ANIM_NO_DELAY = 0 +private val FAB_SIZE = 64.dp + @Composable private fun BottomContent( pagerState: PagerState, @@ -134,20 +145,64 @@ private fun BottomContent( val coroutineScope = rememberCoroutineScope() val isLastPage = pagerState.currentPage >= pageCount - 1 + val buttonWidth by animateDpAsState( + targetValue = if (isLastPage) Dimens.SingleButtonMaxWidth else FAB_SIZE, + animationSpec = tween(durationMillis = BUTTON_ANIM_DELAY), + label = "Onboarding button width", + ) + + val buttonHeight by animateDpAsState( + targetValue = if (isLastPage) Dimens.LargeButtonHeight else FAB_SIZE, + animationSpec = tween(durationMillis = BUTTON_ANIM_DELAY), + label = "Onboarding button height", + ) + + val arrowDelay = if (isLastPage) BUTTON_ANIM_NO_DELAY else BUTTON_ANIM_DELAY + val arrowVisibility by animateFloatAsState( + targetValue = if (isLastPage) 0f else 1f, + animationSpec = tween(durationMillis = BUTTON_ANIM_DELAY, delayMillis = arrowDelay), + label = "Onboarding arrow visibility", + ) + + val textDelay = if (isLastPage) BUTTON_ANIM_DELAY else BUTTON_ANIM_NO_DELAY + val textVisibility by animateFloatAsState( + targetValue = if (isLastPage) 1f else 0f, + animationSpec = tween(durationMillis = BUTTON_ANIM_DELAY, delayMillis = textDelay), + label = "Onboarding text visibility", + ) + Box( contentAlignment = Alignment.Center, modifier = Modifier .fillMaxWidth() .height(136.dp), ) { - when { - isLastPage -> LargeButton(R.string.appName, onClick = startMainActivity) - else -> SwissTransferFab( - icon = AppImages.AppIllus.ArrowRightCurved, - onClick = { + SwissTransferButton( + modifier = Modifier + .height(buttonHeight) + .padding(horizontal = Margin.Medium) + .width(buttonWidth), + onClick = { + if (isLastPage) { + startMainActivity() + } else { coroutineScope.launch(Dispatchers.IO) { pagerState.animateScrollToPage(pagerState.currentPage + 1) } } - ) + }, + contentPadding = PaddingValues(), + ) { + Box(contentAlignment = Alignment.Center) { + Icon( + modifier = Modifier.alpha(arrowVisibility), + imageVector = AppImages.AppIcons.ArrowRight, + contentDescription = null + ) + Text( + modifier = Modifier.alpha(textVisibility), + text = stringResource(id = R.string.appName), + style = SwissTransferTheme.typography.bodyMedium + ) + } } } } From 66ae2abd9e22e12f6664fb531a007912a1ddb964 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Tue, 26 Nov 2024 14:59:33 +0100 Subject: [PATCH 03/44] feat: Import and use illustrations --- .../images/illus/onboarding/StorageBoxPile.kt | 63 + .../illus/onboarding/StorageBoxPileDark.kt | 476 ++++ .../illus/onboarding/StorageBoxPileLight.kt | 633 +++++ .../onboarding/ThreeCardsTransferType.kt | 63 + .../onboarding/ThreeCardsTransferTypeDark.kt | 2044 +++++++++++++++++ .../onboarding/ThreeCardsTransferTypeLight.kt | 2034 ++++++++++++++++ .../onboarding/TwoPadlocksIntertwinedStars.kt | 63 + .../TwoPadlocksIntertwinedStarsDark.kt | 381 +++ .../TwoPadlocksIntertwinedStarsLight.kt | 378 +++ .../ui/screen/onboarding/OnboardingScreen.kt | 30 +- 10 files changed, 6151 insertions(+), 14 deletions(-) create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPile.kt create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPileDark.kt create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPileLight.kt create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferType.kt create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeDark.kt create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeLight.kt create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStars.kt create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsDark.kt create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsLight.kt diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPile.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPile.kt new file mode 100644 index 000000000..88817546e --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPile.kt @@ -0,0 +1,63 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.infomaniak.swisstransfer.ui.images.illus.onboarding + + +import android.content.res.Configuration +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.size +import androidx.compose.material3.Surface +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.tooling.preview.Preview +import com.infomaniak.swisstransfer.ui.images.AppImages +import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus +import com.infomaniak.swisstransfer.ui.images.ThemedImage +import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme + +val AppIllus.StorageBoxPile: ThemedImage + get() = _storageBoxPile ?: object : ThemedImage { + override val light = AppIllus.StorageBoxPileLight + override val dark = AppIllus.StorageBoxPileDark + }.also { _storageBoxPile = it } + +private var _storageBoxPile: ThemedImage? = null + +@Preview(name = "Light") +@Preview(name = "Dark", uiMode = Configuration.UI_MODE_NIGHT_YES or Configuration.UI_MODE_TYPE_NORMAL) +@Composable +private fun Preview() { + SwissTransferTheme { + Surface { + val imageVector = AppIllus.StorageBoxPile.image() + Box { + Image( + imageVector = imageVector, + contentDescription = null, + contentScale = ContentScale.FillBounds, + modifier = Modifier + .size(AppImages.previewSize) + .aspectRatio(imageVector.viewportWidth / imageVector.viewportHeight) + ) + } + } + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPileDark.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPileDark.kt new file mode 100644 index 000000000..b7fed1b75 --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPileDark.kt @@ -0,0 +1,476 @@ +package com.infomaniak.swisstransfer.ui.images.illus.onboarding + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.* +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.infomaniak.swisstransfer.ui.images.AppImages +import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus + +val AppIllus.StorageBoxPileDark: ImageVector + get() { + if (_storageBoxPileDark != null) { + return _storageBoxPileDark!! + } + _storageBoxPileDark = Builder( + name = "StorageBoxPileDark", + defaultWidth = 287.0.dp, + defaultHeight = 247.0.dp, + viewportWidth = 287.0f, + viewportHeight = 247.0f + ).apply { + group { + path( + fill = SolidColor(Color(0xFF67dd95)), + stroke = SolidColor(Color(0xFFdce4e5)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(106.5f, 145.5f) + verticalLineTo(0.5f) + horizontalLineToRelative(106.0f) + verticalLineToRelative(145.0f) + close() + } + path( + fill = SolidColor(Color(0xFF2b383b)), + stroke = SolidColor(Color(0xFFdce4e5)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(70.5f, 145.5f) + verticalLineTo(0.5f) + horizontalLineToRelative(106.0f) + verticalLineToRelative(145.0f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(155.2f, 46.32f) + horizontalLineTo(81.05f) + verticalLineToRelative(22.18f) + horizontalLineTo(155.2f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(104.57f, 58.91f) + curveToRelative(0.0f, -1.56f, -1.09f, -2.24f, -2.12f, -2.24f) + curveToRelative(-0.98f, 0.0f, -1.61f, 0.57f, -1.82f, 1.04f) + lineToRelative(-1.18f, -0.06f) + lineToRelative(0.61f, -5.07f) + horizontalLineToRelative(5.41f) + verticalLineToRelative(1.11f) + horizontalLineToRelative(-4.45f) + lineToRelative(-0.32f, 2.68f) + curveToRelative(0.49f, -0.48f, 1.25f, -0.71f, 2.03f, -0.71f) + curveToRelative(1.65f, 0.0f, 3.09f, 1.17f, 3.09f, 3.25f) + curveToRelative(0.0f, 2.16f, -1.6f, 3.28f, -3.35f, 3.28f) + curveToRelative(-2.18f, 0.0f, -3.17f, -1.38f, -3.35f, -2.9f) + horizontalLineToRelative(1.22f) + curveToRelative(0.18f, 1.18f, 0.82f, 1.91f, 2.13f, 1.91f) + curveToRelative(1.13f, 0.0f, 2.11f, -0.82f, 2.11f, -2.28f) + moveToRelative(6.16f, 3.26f) + curveToRelative(-2.51f, 0.0f, -3.67f, -1.9f, -3.67f, -4.89f) + curveToRelative(0.0f, -2.98f, 1.16f, -4.88f, 3.67f, -4.88f) + reflectiveCurveToRelative(3.67f, 1.9f, 3.67f, 4.88f) + curveToRelative(0.0f, 2.99f, -1.16f, 4.89f, -3.67f, 4.89f) + moveToRelative(0.0f, -8.77f) + curveToRelative(-1.48f, 0.0f, -2.4f, 1.27f, -2.4f, 3.89f) + curveToRelative(0.0f, 2.63f, 0.92f, 3.9f, 2.4f, 3.9f) + reflectiveCurveToRelative(2.4f, -1.27f, 2.4f, -3.9f) + curveToRelative(0.0f, -2.61f, -0.92f, -3.89f, -2.4f, -3.89f) + moveToRelative(16.33f, 1.92f) + horizontalLineToRelative(-1.29f) + curveToRelative(-0.31f, -1.05f, -1.17f, -1.79f, -2.68f, -1.79f) + curveToRelative(-1.66f, 0.0f, -2.96f, 1.3f, -2.96f, 3.74f) + curveToRelative(0.0f, 2.38f, 1.22f, 3.78f, 2.96f, 3.78f) + curveToRelative(1.26f, 0.0f, 2.78f, -0.52f, 2.78f, -2.47f) + verticalLineToRelative(-0.25f) + horizontalLineToRelative(-2.5f) + verticalLineToRelative(-1.14f) + horizontalLineToRelative(3.74f) + verticalLineToRelative(4.81f) + horizontalLineToRelative(-1.04f) + lineToRelative(-0.06f, -1.18f) + curveToRelative(-0.61f, 0.96f, -1.72f, 1.35f, -2.98f, 1.35f) + curveToRelative(-2.72f, 0.0f, -4.26f, -2.03f, -4.26f, -4.9f) + curveToRelative(0.0f, -2.92f, 1.73f, -4.86f, 4.38f, -4.86f) + curveToRelative(1.95f, 0.0f, 3.51f, 1.09f, 3.9f, 2.91f) + moveToRelative(2.18f, -2.74f) + horizontalLineToRelative(3.39f) + curveToRelative(1.75f, 0.0f, 3.32f, 0.46f, 3.32f, 2.33f) + curveToRelative(0.0f, 0.9f, -0.39f, 1.7f, -1.04f, 2.08f) + curveToRelative(0.9f, 0.38f, 1.43f, 1.08f, 1.43f, 2.24f) + curveToRelative(0.0f, 2.0f, -1.5f, 2.78f, -3.38f, 2.78f) + horizontalLineToRelative(-3.72f) + close() + moveTo(130.56f, 56.61f) + horizontalLineToRelative(2.28f) + curveToRelative(1.08f, 0.0f, 1.77f, -0.42f, 1.77f, -1.52f) + curveToRelative(0.0f, -0.96f, -0.71f, -1.39f, -1.77f, -1.39f) + horizontalLineToRelative(-2.28f) + close() + moveTo(130.56f, 60.89f) + horizontalLineToRelative(2.4f) + curveToRelative(1.34f, 0.0f, 2.0f, -0.58f, 2.0f, -1.65f) + curveToRelative(0.0f, -1.11f, -0.66f, -1.57f, -2.08f, -1.57f) + horizontalLineToRelative(-2.33f) + close() + } + path( + fill = SolidColor(Color(0xFF67dd95)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(75.9f, 57.24f) + verticalLineToRelative(1.71f) + horizontalLineToRelative(1.56f) + verticalLineToRelative(1.22f) + horizontalLineToRelative(-1.56f) + verticalLineToRelative(1.71f) + horizontalLineToRelative(1.56f) + verticalLineToRelative(1.22f) + horizontalLineToRelative(-1.56f) + verticalLineToRelative(1.71f) + horizontalLineToRelative(1.56f) + verticalLineToRelative(1.22f) + horizontalLineToRelative(-1.56f) + verticalLineToRelative(1.71f) + horizontalLineTo(91.22f) + verticalLineToRelative(-1.71f) + horizontalLineToRelative(-1.57f) + verticalLineToRelative(-1.22f) + horizontalLineToRelative(1.57f) + verticalLineToRelative(-1.71f) + horizontalLineToRelative(-1.57f) + verticalLineToRelative(-1.22f) + horizontalLineToRelative(1.57f) + verticalLineToRelative(-1.71f) + horizontalLineToRelative(-1.57f) + verticalLineToRelative(-1.22f) + horizontalLineToRelative(1.57f) + verticalLineToRelative(-1.71f) + close() + moveTo(144.39f, 52.16f) + verticalLineToRelative(1.71f) + horizontalLineToRelative(1.56f) + verticalLineToRelative(1.22f) + horizontalLineToRelative(-1.56f) + verticalLineToRelative(1.71f) + horizontalLineToRelative(1.56f) + verticalLineToRelative(1.22f) + horizontalLineToRelative(-1.56f) + verticalLineToRelative(1.71f) + horizontalLineToRelative(1.56f) + verticalLineToRelative(1.22f) + horizontalLineToRelative(-1.56f) + verticalLineToRelative(1.71f) + horizontalLineToRelative(15.31f) + verticalLineToRelative(-1.71f) + horizontalLineToRelative(-1.57f) + verticalLineToRelative(-1.22f) + horizontalLineToRelative(1.57f) + verticalLineToRelative(-1.71f) + horizontalLineToRelative(-1.57f) + verticalLineToRelative(-1.22f) + horizontalLineToRelative(1.57f) + verticalLineToRelative(-1.71f) + horizontalLineToRelative(-1.57f) + verticalLineToRelative(-1.22f) + horizontalLineToRelative(1.57f) + verticalLineToRelative(-1.71f) + close() + } + path( + fill = SolidColor(Color(0xFF67dd95)), + stroke = SolidColor(Color(0xFFdce4e5)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(54.64f, 245.11f) + verticalLineToRelative(-99.89f) + horizontalLineTo(159.41f) + verticalLineToRelative(99.89f) + close() + } + path( + fill = SolidColor(Color(0xFF3c4f52)), + stroke = SolidColor(Color(0xFFdce4e5)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(18.75f, 245.11f) + verticalLineToRelative(-99.89f) + horizontalLineToRelative(104.77f) + verticalLineToRelative(99.89f) + close() + } + path( + fill = SolidColor(Color(0xFF152123)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(159.12f, 183.21f) + horizontalLineToRelative(-35.06f) + verticalLineTo(200.4f) + horizontalLineToRelative(35.06f) + close() + moveTo(123.38f, 183.21f) + horizontalLineTo(18.89f) + verticalLineTo(200.4f) + horizontalLineToRelative(104.49f) + close() + } + path( + fill = SolidColor(Color(0xFF67dd95)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(46.28f, 157.45f) + horizontalLineTo(27.25f) + verticalLineToRelative(9.17f) + horizontalLineToRelative(19.03f) + close() + } + path( + fill = SolidColor(Color(0xFF152123)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(46.28f, 157.45f) + horizontalLineTo(30.03f) + verticalLineToRelative(9.17f) + horizontalLineToRelative(16.25f) + close() + } + path( + fill = SolidColor(Color(0xFF3c4f52)), + stroke = SolidColor(Color(0xFFdce4e5)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(146.82f, 124.5f) + horizontalLineToRelative(69.07f) + verticalLineToRelative(120.9f) + horizontalLineToRelative(-69.07f) + verticalLineTo(124.5f) + close() + } + path( + fill = SolidColor(Color(0xFF67dd95)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(210.6f, 140.31f) + horizontalLineTo(190.12f) + verticalLineToRelative(9.37f) + horizontalLineToRelative(20.48f) + close() + } + path( + fill = SolidColor(Color(0xFF152123)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(210.6f, 140.31f) + horizontalLineToRelative(-15.25f) + verticalLineToRelative(9.37f) + horizontalLineToRelative(15.25f) + close() + } + path( + fill = SolidColor(Color(0xFF67dd95)), + stroke = SolidColor(Color(0xFFdce4e5)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(216.17f, 124.5f) + horizontalLineToRelative(34.77f) + verticalLineToRelative(120.9f) + horizontalLineToRelative(-34.77f) + verticalLineTo(124.5f) + close() + } + path( + fill = SolidColor(Color(0xFF2b383b)), + stroke = SolidColor(Color(0xFFdce4e5)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(7.8f, 192.5f) + horizontalLineTo(117.75f) + verticalLineToRelative(53.01f) + horizontalLineTo(7.8f) + verticalLineTo(192.5f) + close() + } + path( + fill = SolidColor(Color(0xFF3c4f52)), + stroke = SolidColor(Color(0xFFdce4e5)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(0.69f, 213.4f) + lineTo(7.66f, 192.5f) + horizontalLineToRelative(109.9f) + lineToRelative(-6.97f, 20.9f) + close() + } + path( + fill = SolidColor(Color(0xFF67dd95)), + stroke = SolidColor(Color(0xFFdce4e5)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(118.02f, 192.5f) + horizontalLineToRelative(48.64f) + verticalLineToRelative(53.01f) + horizontalLineTo(118.02f) + verticalLineTo(192.5f) + close() + } + path( + fill = SolidColor(Color(0xFF3c4f52)), + stroke = SolidColor(Color(0xFFdce4e5)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(125.18f, 213.4f) + lineToRelative(-6.97f, -20.9f) + horizontalLineToRelative(48.58f) + lineToRelative(6.97f, 20.9f) + close() + } + path( + fill = SolidColor(Color(0xFF2b383b)), + stroke = SolidColor(Color(0xFFdce4e5)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(216.21f, 245.23f) + verticalLineTo(221.5f) + horizontalLineToRelative(69.38f) + verticalLineToRelative(23.73f) + close() + } + path( + fill = SolidColor(Color(0xFF3c4f52)), + stroke = SolidColor(Color(0xFFdce4e5)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(195.82f, 245.23f) + verticalLineTo(221.5f) + horizontalLineToRelative(69.38f) + verticalLineToRelative(23.73f) + close() + } + } + }.build() + return _storageBoxPileDark!! + } + +private var _storageBoxPileDark: ImageVector? = null + +@Preview +@Composable +private fun Preview() { + val imageVector = AppIllus.StorageBoxPileDark + Box { + Image( + imageVector = imageVector, + contentDescription = null, + contentScale = ContentScale.FillBounds, + modifier = Modifier + .size(AppImages.previewSize) + .aspectRatio(imageVector.viewportWidth / imageVector.viewportHeight) + ) + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPileLight.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPileLight.kt new file mode 100644 index 000000000..d7553fc1e --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPileLight.kt @@ -0,0 +1,633 @@ +package com.infomaniak.swisstransfer.ui.images.illus.onboarding + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.size +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.EvenOdd +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.infomaniak.swisstransfer.ui.images.AppImages +import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus + +val AppIllus.StorageBoxPileLight: ImageVector + get() { + if (_storageBoxPileLight != null) { + return _storageBoxPileLight!! + } + _storageBoxPileLight = Builder( + name = "StorageBoxPileLight", + defaultWidth = 290.0.dp, + defaultHeight = 258.0.dp, + viewportWidth = 290.0f, + viewportHeight = 258.0f + ).apply { + path( + fill = SolidColor(Color(0xFFA98116)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = EvenOdd + ) { + moveTo(98.03f, 94.1f) + curveToRelative(0.78f, 0.68f, 3.34f, 1.72f, 4.57f, 1.98f) + curveToRelative(-1.3f, -0.57f, -3.01f, -1.2f, -3.95f, -1.99f) + curveToRelative(-4.49f, -3.77f, -1.84f, -10.05f, 3.96f, -9.13f) + curveToRelative(1.06f, 0.17f, 2.86f, 1.02f, 4.31f, 1.73f) + curveToRelative(-0.97f, -0.69f, -3.82f, -2.05f, -4.84f, -2.28f) + curveToRelative(-4.83f, -1.07f, -9.71f, 4.74f, -4.05f, 9.68f) + } + group { + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(98.03f, 94.1f) + lineToRelative(0.66f, -0.75f) + close() + moveTo(102.6f, 96.08f) + lineTo(102.4f, 97.06f) + lineTo(103.01f, 95.17f) + close() + moveTo(98.65f, 94.1f) + lineTo(98.01f, 94.86f) + lineTo(98.01f, 94.86f) + close() + moveTo(102.61f, 84.97f) + lineTo(102.77f, 83.98f) + close() + moveTo(106.92f, 86.7f) + lineTo(106.48f, 87.6f) + lineTo(107.5f, 85.88f) + close() + moveTo(102.08f, 84.42f) + lineTo(101.86f, 85.39f) + horizontalLineToRelative(0.0f) + close() + moveTo(97.37f, 94.86f) + curveToRelative(0.52f, 0.46f, 1.5f, 0.94f, 2.39f, 1.32f) + curveToRelative(0.92f, 0.39f, 1.93f, 0.74f, 2.64f, 0.89f) + lineToRelative(0.41f, -1.96f) + curveToRelative(-0.52f, -0.11f, -1.4f, -0.41f, -2.27f, -0.77f) + curveToRelative(-0.9f, -0.38f, -1.59f, -0.76f, -1.85f, -0.98f) + close() + moveTo(103.01f, 95.17f) + curveToRelative(-0.7f, -0.31f, -1.38f, -0.58f, -2.09f, -0.9f) + curveToRelative(-0.69f, -0.32f, -1.26f, -0.63f, -1.62f, -0.94f) + lineToRelative(-1.28f, 1.53f) + curveToRelative(0.58f, 0.48f, 1.34f, 0.88f, 2.07f, 1.22f) + curveToRelative(0.71f, 0.33f, 1.53f, 0.66f, 2.13f, 0.92f) + close() + moveTo(99.3f, 93.33f) + curveToRelative(-1.94f, -1.63f, -2.24f, -3.68f, -1.6f, -5.16f) + curveToRelative(0.63f, -1.47f, 2.28f, -2.61f, 4.76f, -2.21f) + lineToRelative(0.31f, -1.98f) + curveToRelative(-3.31f, -0.52f, -5.89f, 1.02f, -6.91f, 3.4f) + curveToRelative(-1.02f, 2.37f, -0.4f, 5.34f, 2.15f, 7.48f) + close() + moveTo(102.45f, 85.95f) + curveToRelative(0.4f, 0.06f, 1.02f, 0.27f, 1.78f, 0.59f) + curveToRelative(0.74f, 0.31f, 1.53f, 0.69f, 2.25f, 1.05f) + lineToRelative(0.89f, -1.79f) + arcToRelative(45.0f, 45.0f, 0.0f, false, false, -2.36f, -1.1f) + curveToRelative(-0.77f, -0.32f, -1.58f, -0.62f, -2.24f, -0.73f) + close() + moveTo(107.5f, 85.88f) + curveToRelative(-0.56f, -0.4f, -1.58f, -0.94f, -2.55f, -1.4f) + curveToRelative(-0.95f, -0.45f, -2.02f, -0.9f, -2.66f, -1.04f) + lineToRelative(-0.43f, 1.95f) + curveToRelative(0.39f, 0.09f, 1.26f, 0.44f, 2.23f, 0.89f) + curveToRelative(0.95f, 0.45f, 1.84f, 0.93f, 2.25f, 1.22f) + close() + moveTo(102.29f, 83.44f) + curveToRelative(-2.86f, -0.63f, -5.72f, 0.76f, -7.04f, 3.06f) + arcToRelative(5.66f, 5.66f, 0.0f, false, false, -0.63f, 4.06f) + curveToRelative(0.32f, 1.48f, 1.21f, 2.95f, 2.76f, 4.29f) + lineToRelative(1.32f, -1.51f) + curveToRelative(-1.29f, -1.13f, -1.91f, -2.24f, -2.12f, -3.21f) + arcToRelative(3.66f, 3.66f, 0.0f, false, true, 0.41f, -2.64f) + curveToRelative(0.9f, -1.57f, 2.9f, -2.55f, 4.88f, -2.11f) + close() + } + path( + fill = SolidColor(Color(0xFFA98116)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = EvenOdd + ) { + moveTo(113.21f, 103.3f) + curveToRelative(-0.14f, -0.05f, -10.5f, 3.16f, -7.59f, 7.86f) + curveToRelative(-0.47f, -2.07f, 0.5f, -4.47f, 7.59f, -7.86f) + } + } + group { + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(113.21f, 103.3f) + lineToRelative(0.43f, 0.9f) + lineToRelative(2.04f, -0.97f) + lineToRelative(-2.09f, -0.85f) + close() + moveTo(105.62f, 111.16f) + lineTo(104.77f, 111.69f) + lineTo(106.6f, 110.94f) + close() + moveTo(113.59f, 102.38f) + curveToRelative(-0.18f, -0.08f, -0.34f, -0.08f, -0.37f, -0.08f) + arcToRelative(1.15f, 1.15f, 0.0f, false, false, -0.24f, 0.02f) + arcToRelative(2.0f, 2.0f, 0.0f, false, false, -0.16f, 0.04f) + arcToRelative(8.0f, 8.0f, 0.0f, false, false, -0.39f, 0.12f) + curveToRelative(-0.31f, 0.1f, -0.74f, 0.25f, -1.23f, 0.44f) + curveToRelative(-0.98f, 0.38f, -2.26f, 0.95f, -3.45f, 1.68f) + curveToRelative(-1.17f, 0.72f, -2.36f, 1.67f, -3.05f, 2.84f) + curveToRelative(-0.35f, 0.6f, -0.58f, 1.28f, -0.59f, 2.03f) + curveToRelative(-0.01f, 0.75f, 0.22f, 1.5f, 0.67f, 2.22f) + lineToRelative(1.7f, -1.05f) + curveToRelative(-0.28f, -0.45f, -0.37f, -0.83f, -0.37f, -1.15f) + curveToRelative(0.0f, -0.33f, 0.1f, -0.67f, 0.32f, -1.03f) + curveToRelative(0.44f, -0.75f, 1.3f, -1.49f, 2.38f, -2.15f) + curveToRelative(1.05f, -0.65f, 2.21f, -1.17f, 3.12f, -1.52f) + arcToRelative(19.0f, 19.0f, 0.0f, false, true, 1.11f, -0.39f) + quadToRelative(0.2f, -0.06f, 0.3f, -0.09f) + lineToRelative(0.04f, -0.01f) + curveToRelative(-0.0f, 0.0f, -0.03f, 0.0f, -0.06f, 0.01f) + arcToRelative(1.0f, 1.0f, 0.0f, false, true, -0.11f, 0.0f) + curveToRelative(-0.02f, -0.0f, -0.18f, 0.0f, -0.36f, -0.07f) + close() + moveTo(106.6f, 110.93f) + arcToRelative(2.5f, 2.5f, 0.0f, false, true, -0.01f, -1.17f) + curveToRelative(0.09f, -0.39f, 0.31f, -0.86f, 0.76f, -1.4f) + curveToRelative(0.93f, -1.12f, 2.79f, -2.49f, 6.29f, -4.16f) + lineToRelative(-0.86f, -1.8f) + curveToRelative(-3.58f, 1.71f, -5.76f, 3.23f, -6.97f, 4.68f) + curveToRelative(-0.62f, 0.74f, -1.0f, 1.48f, -1.17f, 2.22f) + arcToRelative(4.5f, 4.5f, 0.0f, false, false, 0.01f, 2.08f) + close() + } + path( + fill = SolidColor(Color(0xFF3CB572)), + stroke = SolidColor(Color(0xFF014958)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(106.5f, 145.5f) + verticalLineTo(0.5f) + horizontalLineToRelative(106.0f) + verticalLineToRelative(145.0f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = SolidColor(Color(0xFF014958)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(70.5f, 145.5f) + verticalLineTo(0.5f) + horizontalLineToRelative(106.0f) + verticalLineToRelative(145.0f) + close() + } + path( + fill = SolidColor(Color(0xFFE3F6DC)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(155.2f, 46.32f) + horizontalLineTo(81.06f) + verticalLineToRelative(22.18f) + horizontalLineTo(155.2f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(104.57f, 58.91f) + curveToRelative(0.0f, -1.56f, -1.09f, -2.24f, -2.12f, -2.24f) + curveToRelative(-0.98f, 0.0f, -1.61f, 0.57f, -1.82f, 1.04f) + lineToRelative(-1.18f, -0.06f) + lineToRelative(0.61f, -5.07f) + horizontalLineToRelative(5.41f) + verticalLineToRelative(1.11f) + horizontalLineToRelative(-4.45f) + lineToRelative(-0.32f, 2.68f) + curveToRelative(0.49f, -0.48f, 1.25f, -0.71f, 2.03f, -0.71f) + curveToRelative(1.65f, 0.0f, 3.09f, 1.17f, 3.09f, 3.25f) + curveToRelative(0.0f, 2.16f, -1.6f, 3.28f, -3.35f, 3.28f) + curveToRelative(-2.18f, 0.0f, -3.17f, -1.38f, -3.35f, -2.9f) + horizontalLineToRelative(1.22f) + curveToRelative(0.18f, 1.18f, 0.82f, 1.91f, 2.13f, 1.91f) + curveToRelative(1.13f, 0.0f, 2.11f, -0.82f, 2.11f, -2.28f) + moveToRelative(6.16f, 3.26f) + curveToRelative(-2.51f, 0.0f, -3.67f, -1.9f, -3.67f, -4.89f) + curveToRelative(0.0f, -2.98f, 1.16f, -4.88f, 3.67f, -4.88f) + reflectiveCurveToRelative(3.67f, 1.9f, 3.67f, 4.88f) + curveToRelative(0.0f, 2.99f, -1.16f, 4.89f, -3.67f, 4.89f) + moveToRelative(0.0f, -8.77f) + curveToRelative(-1.48f, 0.0f, -2.4f, 1.27f, -2.4f, 3.89f) + curveToRelative(0.0f, 2.63f, 0.92f, 3.9f, 2.4f, 3.9f) + reflectiveCurveToRelative(2.4f, -1.27f, 2.4f, -3.9f) + curveToRelative(0.0f, -2.61f, -0.92f, -3.89f, -2.4f, -3.89f) + moveToRelative(16.33f, 1.92f) + horizontalLineToRelative(-1.29f) + curveToRelative(-0.31f, -1.05f, -1.17f, -1.79f, -2.68f, -1.79f) + curveToRelative(-1.66f, 0.0f, -2.96f, 1.3f, -2.96f, 3.74f) + curveToRelative(0.0f, 2.38f, 1.22f, 3.78f, 2.96f, 3.78f) + curveToRelative(1.26f, 0.0f, 2.78f, -0.52f, 2.78f, -2.47f) + verticalLineToRelative(-0.25f) + horizontalLineToRelative(-2.5f) + verticalLineToRelative(-1.14f) + horizontalLineToRelative(3.74f) + verticalLineToRelative(4.81f) + horizontalLineToRelative(-1.04f) + lineToRelative(-0.06f, -1.18f) + curveToRelative(-0.61f, 0.96f, -1.72f, 1.35f, -2.98f, 1.35f) + curveToRelative(-2.72f, 0.0f, -4.26f, -2.03f, -4.26f, -4.9f) + curveToRelative(0.0f, -2.92f, 1.73f, -4.86f, 4.38f, -4.86f) + curveToRelative(1.95f, 0.0f, 3.51f, 1.09f, 3.9f, 2.91f) + moveToRelative(2.18f, -2.74f) + horizontalLineToRelative(3.39f) + curveToRelative(1.75f, 0.0f, 3.32f, 0.46f, 3.32f, 2.33f) + curveToRelative(0.0f, 0.9f, -0.39f, 1.7f, -1.04f, 2.08f) + curveToRelative(0.9f, 0.38f, 1.43f, 1.08f, 1.43f, 2.24f) + curveToRelative(0.0f, 2.0f, -1.5f, 2.78f, -3.38f, 2.78f) + horizontalLineToRelative(-3.72f) + close() + moveTo(130.56f, 56.61f) + horizontalLineToRelative(2.28f) + curveToRelative(1.08f, 0.0f, 1.77f, -0.42f, 1.77f, -1.52f) + curveToRelative(0.0f, -0.96f, -0.71f, -1.39f, -1.77f, -1.39f) + horizontalLineToRelative(-2.28f) + close() + moveTo(130.56f, 60.89f) + horizontalLineToRelative(2.4f) + curveToRelative(1.34f, 0.0f, 2.0f, -0.58f, 2.0f, -1.65f) + curveToRelative(0.0f, -1.11f, -0.66f, -1.57f, -2.08f, -1.57f) + horizontalLineToRelative(-2.33f) + close() + } + path( + fill = SolidColor(Color(0xFF3CB572)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(75.9f, 57.24f) + verticalLineToRelative(1.71f) + horizontalLineToRelative(1.56f) + verticalLineToRelative(1.22f) + horizontalLineToRelative(-1.56f) + verticalLineToRelative(1.71f) + horizontalLineToRelative(1.56f) + verticalLineToRelative(1.22f) + horizontalLineToRelative(-1.56f) + verticalLineToRelative(1.71f) + horizontalLineToRelative(1.56f) + verticalLineToRelative(1.22f) + horizontalLineToRelative(-1.56f) + verticalLineToRelative(1.71f) + horizontalLineTo(91.22f) + verticalLineToRelative(-1.71f) + horizontalLineToRelative(-1.57f) + verticalLineToRelative(-1.22f) + horizontalLineToRelative(1.57f) + verticalLineToRelative(-1.71f) + horizontalLineToRelative(-1.57f) + verticalLineToRelative(-1.22f) + horizontalLineToRelative(1.57f) + verticalLineToRelative(-1.71f) + horizontalLineToRelative(-1.57f) + verticalLineToRelative(-1.22f) + horizontalLineToRelative(1.57f) + verticalLineToRelative(-1.71f) + close() + moveTo(144.39f, 52.16f) + verticalLineToRelative(1.71f) + horizontalLineToRelative(1.56f) + verticalLineToRelative(1.22f) + horizontalLineToRelative(-1.56f) + verticalLineToRelative(1.71f) + horizontalLineToRelative(1.56f) + verticalLineToRelative(1.22f) + horizontalLineToRelative(-1.56f) + verticalLineToRelative(1.71f) + horizontalLineToRelative(1.56f) + verticalLineToRelative(1.22f) + horizontalLineToRelative(-1.56f) + verticalLineToRelative(1.71f) + horizontalLineToRelative(15.31f) + verticalLineToRelative(-1.71f) + horizontalLineToRelative(-1.57f) + verticalLineToRelative(-1.22f) + horizontalLineToRelative(1.57f) + verticalLineToRelative(-1.71f) + horizontalLineToRelative(-1.57f) + verticalLineToRelative(-1.22f) + horizontalLineToRelative(1.57f) + verticalLineToRelative(-1.71f) + horizontalLineToRelative(-1.57f) + verticalLineToRelative(-1.22f) + horizontalLineToRelative(1.57f) + verticalLineToRelative(-1.71f) + close() + } + path( + fill = SolidColor(Color(0xFF3CB572)), + stroke = SolidColor(Color(0xFF000000)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(54.64f, 245.11f) + verticalLineToRelative(-99.89f) + horizontalLineTo(159.41f) + verticalLineToRelative(99.89f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = SolidColor(Color(0xFF000000)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(18.75f, 245.11f) + verticalLineToRelative(-99.89f) + horizontalLineToRelative(104.77f) + verticalLineToRelative(99.89f) + close() + } + path( + fill = SolidColor(Color(0xFFE3F6DC)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(159.12f, 183.21f) + horizontalLineToRelative(-35.06f) + verticalLineTo(200.4f) + horizontalLineToRelative(35.06f) + close() + moveTo(123.38f, 183.21f) + horizontalLineTo(18.89f) + verticalLineTo(200.4f) + horizontalLineToRelative(104.49f) + close() + } + path( + fill = SolidColor(Color(0xFF3CB572)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(46.28f, 157.45f) + horizontalLineTo(27.25f) + verticalLineToRelative(9.17f) + horizontalLineToRelative(19.03f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(46.28f, 157.45f) + horizontalLineTo(30.03f) + verticalLineToRelative(9.17f) + horizontalLineToRelative(16.25f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = SolidColor(Color(0xFF000000)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(146.49f, 135.73f) + horizontalLineToRelative(69.07f) + verticalLineToRelative(120.9f) + horizontalLineToRelative(-69.07f) + close() + } + path( + fill = SolidColor(Color(0xFF3CB572)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(210.26f, 151.54f) + horizontalLineToRelative(-20.48f) + verticalLineToRelative(9.37f) + horizontalLineToRelative(20.48f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(210.26f, 151.54f) + horizontalLineToRelative(-15.25f) + verticalLineToRelative(9.37f) + horizontalLineToRelative(15.25f) + close() + } + path( + fill = SolidColor(Color(0xFF3CB572)), + stroke = SolidColor(Color(0xFF000000)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(215.83f, 135.73f) + horizontalLineToRelative(34.77f) + verticalLineToRelative(120.9f) + horizontalLineToRelative(-34.77f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = SolidColor(Color(0xFF014958)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(7.8f, 203.61f) + horizontalLineTo(117.75f) + verticalLineToRelative(53.01f) + horizontalLineTo(7.8f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = SolidColor(Color(0xFF014958)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(0.69f, 224.51f) + lineToRelative(6.97f, -20.9f) + horizontalLineToRelative(109.9f) + lineToRelative(-6.97f, 20.9f) + close() + } + path( + fill = SolidColor(Color(0xFF3CB572)), + stroke = SolidColor(Color(0xFF014958)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(118.02f, 203.61f) + horizontalLineToRelative(48.64f) + verticalLineToRelative(53.01f) + horizontalLineTo(118.02f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = SolidColor(Color(0xFF014958)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(125.18f, 224.51f) + lineToRelative(-6.97f, -20.9f) + horizontalLineToRelative(48.58f) + lineToRelative(6.97f, 20.9f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = SolidColor(Color(0xFF000000)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(219.27f, 257.23f) + verticalLineTo(233.5f) + horizontalLineToRelative(69.38f) + verticalLineToRelative(23.73f) + close() + } + path( + fill = SolidColor(Color(0xFFE3F6DC)), + stroke = SolidColor(Color(0xFF000000)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(195.39f, 257.23f) + verticalLineTo(233.5f) + horizontalLineToRelative(69.38f) + verticalLineToRelative(23.73f) + close() + } + } + }.build() + return _storageBoxPileLight!! + } + +private var _storageBoxPileLight: ImageVector? = null + +@Preview +@Composable +private fun Preview() { + val imageVector = AppIllus.StorageBoxPileLight + Box { + Image( + imageVector = imageVector, + contentDescription = null, + contentScale = ContentScale.FillBounds, + modifier = Modifier + .size(AppImages.previewSize) + .aspectRatio(imageVector.viewportWidth / imageVector.viewportHeight) + ) + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferType.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferType.kt new file mode 100644 index 000000000..f75888c95 --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferType.kt @@ -0,0 +1,63 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.infomaniak.swisstransfer.ui.images.illus.onboarding + + +import android.content.res.Configuration +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.size +import androidx.compose.material3.Surface +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.tooling.preview.Preview +import com.infomaniak.swisstransfer.ui.images.AppImages +import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus +import com.infomaniak.swisstransfer.ui.images.ThemedImage +import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme + +val AppIllus.ThreeCardsTransferType: ThemedImage + get() = _threeCardsTransferType ?: object : ThemedImage { + override val light = AppIllus.ThreeCardsTransferTypeLight + override val dark = AppIllus.ThreeCardsTransferTypeDark + }.also { _threeCardsTransferType = it } + +private var _threeCardsTransferType: ThemedImage? = null + +@Preview(name = "Light") +@Preview(name = "Dark", uiMode = Configuration.UI_MODE_NIGHT_YES or Configuration.UI_MODE_TYPE_NORMAL) +@Composable +private fun Preview() { + SwissTransferTheme { + Surface { + val imageVector = AppIllus.ThreeCardsTransferType.image() + Box { + Image( + imageVector = imageVector, + contentDescription = null, + contentScale = ContentScale.FillBounds, + modifier = Modifier + .size(AppImages.previewSize) + .aspectRatio(imageVector.viewportWidth / imageVector.viewportHeight) + ) + } + } + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeDark.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeDark.kt new file mode 100644 index 000000000..41df0c8bd --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeDark.kt @@ -0,0 +1,2044 @@ +package com.infomaniak.swisstransfer.ui.images.illus.onboarding + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.size +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.infomaniak.swisstransfer.ui.images.AppImages +import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus +import androidx.compose.ui.graphics.StrokeCap.Companion.Round as strokeCapRound +import androidx.compose.ui.graphics.StrokeJoin.Companion.Round as strokeJoinRound + +val AppIllus.ThreeCardsTransferTypeDark: ImageVector + get() { + if (_threeCardsTransferTypeDark != null) { + return _threeCardsTransferTypeDark!! + } + _threeCardsTransferTypeDark = Builder( + name = "ThreeCardsTransferTypeDark", + defaultWidth = 296.0.dp, + defaultHeight = 210.0.dp, + viewportWidth = 296.0f, + viewportHeight = 210.0f + ).apply { + path( + fill = SolidColor(Color(0x00000000)), + stroke = SolidColor(Color(0xFF67DD95)), + strokeLineWidth = 2.0f, + strokeLineCap = strokeCapRound, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(270.05f, 200.24f) + curveToRelative(7.94f, 1.49f, 16.46f, -2.26f, 20.13f, -13.08f) + moveTo(278.15f, 206.6f) + curveToRelative(5.49f, 1.06f, 11.33f, -1.38f, 13.78f, -8.6f) + } + path( + fill = SolidColor(Color(0x00000000)), + stroke = SolidColor(Color(0xFFFFFFFF)), + strokeLineWidth = 2.0f, + strokeLineCap = strokeCapRound, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(43.28f, 8.95f) + curveToRelative(-8.35f, -1.06f, -16.97f, 3.37f, -20.11f, 14.84f) + moveTo(34.47f, 2.83f) + curveToRelative(-5.77f, -0.76f, -11.69f, 2.14f, -13.79f, 9.79f) + } + path( + fill = SolidColor(Color(0xFF3C4F52)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 0.5f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(148.5f, 49.33f) + lineTo(227.49f, 28.16f) + arcTo(3.31f, 3.31f, 120.0f, false, true, 231.54f, 30.5f) + lineTo(271.11f, 178.18f) + arcTo(3.31f, 3.31f, 120.0f, false, true, 268.77f, 182.23f) + lineTo(189.78f, 203.39f) + arcTo(3.31f, 3.31f, 120.0f, false, true, 185.73f, 201.05f) + lineTo(146.16f, 53.38f) + arcTo(3.31f, 3.31f, 120.0f, false, true, 148.5f, 49.33f) + close() + } + path( + fill = SolidColor(Color(0xFF67DD95)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(164.26f, 66.93f) + lineTo(222.64f, 51.29f) + arcTo(1.78f, 1.78f, 120.0f, false, true, 224.82f, 52.54f) + lineTo(242.31f, 117.8f) + arcTo(1.78f, 1.78f, 120.0f, false, true, 241.05f, 119.98f) + lineTo(182.66f, 135.62f) + arcTo(1.78f, 1.78f, 120.0f, false, true, 180.49f, 134.36f) + lineTo(163.0f, 69.11f) + arcTo(1.78f, 1.78f, 120.0f, false, true, 164.26f, 66.93f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(202.65f, 93.45f) + moveToRelative(-20.61f, 5.52f) + arcToRelative(21.33f, 21.33f, 120.0f, true, true, 41.21f, -11.04f) + arcToRelative(21.33f, 21.33f, 120.0f, true, true, -41.21f, 11.04f) + } + path( + fill = SolidColor(Color(0xFF67DD95)), + stroke = SolidColor(Color(0xFF67DD95)), + strokeLineWidth = 0.5f, + strokeLineCap = strokeCapRound, + strokeLineJoin = strokeJoinRound, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(192.47f, 89.02f) + curveToRelative(-1.2f, 0.32f, -1.88f, 1.57f, -1.56f, 2.75f) + lineToRelative(2.76f, 10.3f) + curveToRelative(0.32f, 1.18f, 1.52f, 1.92f, 2.73f, 1.6f) + lineToRelative(16.8f, -4.5f) + curveToRelative(1.2f, -0.32f, 1.88f, -1.57f, 1.56f, -2.75f) + lineToRelative(-2.76f, -10.3f) + curveToRelative(-0.32f, -1.18f, -1.52f, -1.92f, -2.73f, -1.6f) + close() + moveTo(195.43f, 101.6f) + lineTo(192.86f, 91.98f) + lineTo(202.87f, 96.5f) + arcToRelative(0.92f, 0.92f, 0.0f, false, false, 1.12f, -0.3f) + lineToRelative(6.41f, -8.92f) + lineToRelative(2.58f, 9.62f) + arcToRelative(0.4f, 0.4f, 0.0f, false, true, -0.27f, 0.5f) + lineToRelative(-16.8f, 4.5f) + arcToRelative(0.4f, 0.4f, 0.0f, false, true, -0.48f, -0.3f) + moveToRelative(-1.4f, -11.1f) + lineToRelative(14.61f, -3.91f) + lineToRelative(-5.7f, 7.93f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(210.69f, 150.77f) + lineToRelative(-4.44f, -6.95f) + lineToRelative(2.04f, 7.6f) + lineToRelative(-1.23f, 0.33f) + lineToRelative(-2.34f, -8.71f) + lineToRelative(2.06f, -0.55f) + lineToRelative(4.17f, 6.66f) + lineToRelative(0.28f, -7.86f) + lineToRelative(2.06f, -0.55f) + lineToRelative(2.34f, 8.72f) + lineToRelative(-1.23f, 0.33f) + lineToRelative(-2.04f, -7.6f) + lineToRelative(-0.37f, 8.24f) + close() + moveTo(216.67f, 147.34f) + curveToRelative(-0.41f, -1.53f, 1.19f, -2.43f, 3.77f, -3.44f) + lineToRelative(-0.04f, -0.16f) + curveToRelative(-0.32f, -1.18f, -1.08f, -1.4f, -1.89f, -1.18f) + curveToRelative(-0.9f, 0.24f, -1.3f, 0.88f, -1.13f, 1.68f) + lineToRelative(-1.13f, 0.3f) + curveToRelative(-0.26f, -1.42f, 0.75f, -2.53f, 2.01f, -2.87f) + curveToRelative(1.78f, -0.48f, 2.81f, 0.16f, 3.29f, 1.98f) + lineToRelative(0.39f, 1.49f) + curveToRelative(0.28f, 1.09f, 0.54f, 1.81f, 0.82f, 2.39f) + lineToRelative(-1.11f, 0.3f) + arcToRelative(7.0f, 7.0f, 0.0f, false, true, -0.32f, -0.87f) + curveToRelative(-0.22f, 0.77f, -0.79f, 1.33f, -1.93f, 1.64f) + curveToRelative(-1.21f, 0.33f, -2.4f, -0.08f, -2.72f, -1.27f) + moveToRelative(4.08f, -2.6f) + curveToRelative(-1.93f, 0.74f, -3.11f, 1.36f, -2.88f, 2.25f) + curveToRelative(0.16f, 0.61f, 0.74f, 0.9f, 1.52f, 0.69f) + curveToRelative(1.02f, -0.27f, 1.87f, -1.0f, 1.46f, -2.53f) + close() + moveTo(222.99f, 138.14f) + lineTo(223.34f, 139.46f) + lineTo(222.25f, 139.75f) + lineTo(221.89f, 138.43f) + close() + moveTo(223.59f, 140.38f) + lineTo(225.32f, 146.85f) + lineTo(224.23f, 147.14f) + lineTo(222.5f, 140.68f) + close() + moveTo(228.15f, 146.09f) + lineTo(227.06f, 146.39f) + lineTo(224.72f, 137.67f) + lineTo(225.81f, 137.38f) + close() + } + path( + fill = SolidColor(Color(0xFF3C4F52)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 0.5f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(44.78f, 28.16f) + lineTo(123.77f, 49.33f) + arcTo(3.31f, 3.31f, 60.0f, false, true, 126.11f, 53.38f) + lineTo(86.54f, 201.06f) + arcTo(3.31f, 3.31f, 60.0f, false, true, 82.49f, 203.39f) + lineTo(3.5f, 182.23f) + arcTo(3.31f, 3.31f, 60.0f, false, true, 1.16f, 178.18f) + lineTo(40.73f, 30.5f) + arcTo(3.31f, 3.31f, 60.0f, false, true, 44.78f, 28.16f) + close() + } + path( + fill = SolidColor(Color(0xFF67DD95)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(47.91f, 50.83f) + lineTo(108.01f, 66.93f) + arcTo(1.78f, 1.78f, 60.0f, false, true, 109.27f, 69.11f) + lineTo(91.78f, 134.36f) + arcTo(1.78f, 1.78f, 60.0f, false, true, 89.61f, 135.62f) + lineTo(29.5f, 119.52f) + arcTo(1.78f, 1.78f, 60.0f, false, true, 28.25f, 117.34f) + lineTo(45.73f, 52.09f) + arcTo(1.78f, 1.78f, 60.0f, false, true, 47.91f, 50.83f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(56.08f, 69.95f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(55.53f, 72.01f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(54.98f, 74.07f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(54.42f, 76.13f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(53.87f, 78.19f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(53.32f, 80.25f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(58.14f, 70.5f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(55.38f, 80.81f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(60.2f, 71.06f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(59.1f, 75.18f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(58.55f, 77.24f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(57.44f, 81.36f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(62.26f, 71.61f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(61.16f, 75.73f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(60.61f, 77.79f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(59.5f, 81.91f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(64.32f, 72.16f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(61.56f, 82.46f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(66.38f, 72.71f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(65.83f, 74.77f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(65.28f, 76.83f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(64.73f, 78.89f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(64.18f, 80.96f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(63.62f, 83.01f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(77.15f, 106.44f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(76.6f, 108.5f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(76.05f, 110.56f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(75.5f, 112.63f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(74.94f, 114.69f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(74.39f, 116.75f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(79.21f, 107.0f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(76.45f, 117.3f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(81.27f, 107.55f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(80.17f, 111.67f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(79.62f, 113.73f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(78.51f, 117.85f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(83.33f, 108.1f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(82.23f, 112.22f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(81.68f, 114.28f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(80.57f, 118.4f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(85.39f, 108.65f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(82.63f, 118.95f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(87.46f, 109.2f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(86.9f, 111.27f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(86.35f, 113.33f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(85.8f, 115.39f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(85.25f, 117.45f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(84.69f, 119.51f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(52.18f, 84.36f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(51.62f, 86.42f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(51.07f, 88.49f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(50.52f, 90.54f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(49.42f, 94.67f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(48.86f, 96.73f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(48.31f, 98.79f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(47.21f, 102.91f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(46.65f, 104.97f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(46.1f, 107.03f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(45.55f, 109.09f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(54.24f, 84.92f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(53.69f, 86.98f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(50.92f, 97.28f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(49.82f, 101.4f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(48.72f, 105.52f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(47.61f, 109.64f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(56.3f, 85.47f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(54.64f, 91.65f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(52.43f, 99.89f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(51.88f, 101.95f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(51.33f, 104.01f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(50.22f, 108.13f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(49.67f, 110.19f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(56.15f, 94.26f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(55.05f, 98.38f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(54.49f, 100.44f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(53.94f, 102.5f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(53.39f, 104.57f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(52.84f, 106.63f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(52.28f, 108.69f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(51.73f, 110.75f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(60.42f, 86.57f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(59.87f, 88.63f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(59.31f, 90.69f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(58.76f, 92.75f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(56.0f, 103.06f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(55.45f, 105.12f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(54.34f, 109.24f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(60.82f, 93.31f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(60.27f, 95.37f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(58.62f, 101.55f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(58.06f, 103.61f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(57.51f, 105.67f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(55.85f, 111.85f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(61.23f, 100.04f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(59.57f, 106.22f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(58.47f, 110.34f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(70.47f, 73.8f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(67.71f, 84.11f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(62.5f, 87.14f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(63.29f, 100.59f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(62.18f, 104.71f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(61.63f, 106.77f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(61.08f, 108.83f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(59.97f, 112.96f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(72.53f, 74.36f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(71.97f, 76.42f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(71.42f, 78.48f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(70.87f, 80.54f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(70.32f, 82.6f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(69.77f, 84.66f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(66.23f, 110.21f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(62.59f, 111.45f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(62.04f, 113.51f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(74.59f, 74.91f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(74.04f, 76.97f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(72.38f, 83.15f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(71.83f, 85.21f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(64.56f, 87.69f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(65.2f, 109.94f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(64.65f, 112.0f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(64.1f, 114.06f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(75.54f, 79.58f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(74.99f, 81.64f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(61.72f, 97.97f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-1.99f, -0.53f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(68.37f, 106.37f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(66.87f, 103.77f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(67.81f, 108.43f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(67.26f, 110.49f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(66.71f, 112.55f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(66.16f, 114.61f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(78.71f, 76.01f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(77.6f, 80.13f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(77.05f, 82.19f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(75.95f, 86.32f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(71.0f, 104.87f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(70.43f, 106.92f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(79.67f, 80.69f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(78.56f, 84.81f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(78.01f, 86.87f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(77.47f, 88.94f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(78.98f, 91.55f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(76.22f, 101.86f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(64.81f, 103.22f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(73.59f, 103.35f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(73.04f, 105.41f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(71.93f, 109.54f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(71.38f, 111.6f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(70.83f, 113.66f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(84.89f, 77.67f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(84.34f, 79.73f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(83.79f, 81.79f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(83.23f, 83.85f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(82.68f, 85.91f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(82.13f, 87.97f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(81.03f, 92.09f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(80.47f, 94.15f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(79.37f, 98.28f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(78.82f, 100.34f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(78.26f, 102.4f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(86.95f, 78.22f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(84.19f, 88.52f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(82.53f, 94.71f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(81.98f, 96.77f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(81.43f, 98.83f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(80.32f, 102.95f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(89.01f, 78.77f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(87.91f, 82.89f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(87.36f, 84.96f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(86.25f, 89.08f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(84.59f, 95.26f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(84.04f, 97.32f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(83.49f, 99.38f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(82.94f, 101.44f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(82.39f, 103.5f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(91.07f, 79.32f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(89.97f, 83.45f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(89.42f, 85.51f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(88.31f, 89.63f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(87.21f, 93.75f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(85.55f, 99.93f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(93.13f, 79.88f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(90.37f, 90.18f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(89.27f, 94.3f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(88.71f, 96.36f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(88.16f, 98.42f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(87.61f, 100.48f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(87.06f, 102.54f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(86.51f, 104.61f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(95.19f, 80.43f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(94.64f, 82.49f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(94.09f, 84.55f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(93.54f, 86.61f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(92.99f, 88.67f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(92.43f, 90.73f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(90.22f, 98.98f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(89.12f, 103.1f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(75.42f, 88.91f) + lineTo(67.0f, 86.65f) + curveToRelative(-0.58f, -0.16f, -1.19f, 0.22f, -1.36f, 0.85f) + lineToRelative(-2.42f, 9.03f) + curveToRelative(-0.17f, 0.62f, 0.17f, 1.25f, 0.75f, 1.41f) + lineTo(72.4f, 100.2f) + curveToRelative(0.58f, 0.16f, 1.19f, -0.22f, 1.36f, -0.85f) + lineToRelative(2.42f, -9.03f) + curveToRelative(0.17f, -0.62f, -0.17f, -1.26f, -0.75f, -1.41f) + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(54.04f, 147.46f) + lineToRelative(0.76f, 1.31f) + lineToRelative(-0.94f, 0.55f) + lineToRelative(-0.78f, -1.36f) + curveToRelative(-0.74f, 0.25f, -1.57f, 0.28f, -2.44f, 0.04f) + curveToRelative(-2.51f, -0.67f, -3.58f, -2.98f, -2.88f, -5.61f) + curveToRelative(0.7f, -2.63f, 2.78f, -4.09f, 5.29f, -3.41f) + curveToRelative(2.51f, 0.67f, 3.59f, 2.97f, 2.88f, 5.6f) + curveToRelative(-0.34f, 1.27f, -1.01f, 2.27f, -1.88f, 2.88f) + moveToRelative(-3.14f, -0.49f) + arcToRelative(2.77f, 2.77f, 0.0f, false, false, 1.58f, -0.03f) + lineToRelative(-0.59f, -1.02f) + lineToRelative(0.95f, -0.56f) + lineToRelative(0.59f, 1.03f) + curveToRelative(0.55f, -0.47f, 0.99f, -1.18f, 1.25f, -2.15f) + curveToRelative(0.6f, -2.25f, -0.32f, -3.81f, -1.91f, -4.23f) + curveToRelative(-1.59f, -0.43f, -3.17f, 0.47f, -3.77f, 2.71f) + reflectiveCurveToRelative(0.32f, 3.82f, 1.9f, 4.25f) + moveToRelative(9.91f, -0.35f) + curveToRelative(-0.22f, -0.05f, -0.44f, -0.1f, -0.66f, -0.17f) + lineToRelative(-1.54f, -0.41f) + lineToRelative(-0.98f, 3.67f) + lineToRelative(-1.23f, -0.33f) + lineToRelative(2.34f, -8.72f) + lineToRelative(2.77f, 0.74f) + curveToRelative(2.13f, 0.57f, 3.52f, 1.39f, 2.96f, 3.48f) + curveToRelative(-0.37f, 1.38f, -1.21f, 1.87f, -2.36f, 1.87f) + lineToRelative(0.98f, 4.41f) + lineToRelative(-1.37f, -0.37f) + close() + moveTo(59.69f, 142.03f) + lineTo(58.89f, 145.01f) + lineTo(60.52f, 145.45f) + curveToRelative(1.27f, 0.34f, 2.31f, 0.48f, 2.67f, -0.87f) + reflectiveCurveToRelative(-0.6f, -1.77f, -1.87f, -2.11f) + close() + } + path( + fill = SolidColor(Color(0xFF2B383B)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 0.5f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(91.0f, 13.25f) + lineTo(183.0f, 13.25f) + arcTo(3.75f, 3.75f, 0.0f, false, true, 186.75f, 17.0f) + lineTo(186.75f, 189.0f) + arcTo(3.75f, 3.75f, 0.0f, false, true, 183.0f, 192.75f) + lineTo(91.0f, 192.75f) + arcTo(3.75f, 3.75f, 0.0f, false, true, 87.25f, 189.0f) + lineTo(87.25f, 17.0f) + arcTo(3.75f, 3.75f, 0.0f, false, true, 91.0f, 13.25f) + close() + } + path( + fill = SolidColor(Color(0xFF67DD95)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(103.0f, 37.0f) + lineTo(171.0f, 37.0f) + arcTo(2.0f, 2.0f, 0.0f, false, true, 173.0f, 39.0f) + lineTo(173.0f, 115.0f) + arcTo(2.0f, 2.0f, 0.0f, false, true, 171.0f, 117.0f) + lineTo(103.0f, 117.0f) + arcTo(2.0f, 2.0f, 0.0f, false, true, 101.0f, 115.0f) + lineTo(101.0f, 39.0f) + arcTo(2.0f, 2.0f, 0.0f, false, true, 103.0f, 37.0f) + close() + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(137.0f, 77.0f) + moveToRelative(-24.0f, 0.0f) + arcToRelative(24.0f, 24.0f, 0.0f, true, true, 48.0f, 0.0f) + arcToRelative(24.0f, 24.0f, 0.0f, true, true, -48.0f, 0.0f) + } + path( + fill = SolidColor(Color(0xFF67DD95)), + stroke = SolidColor(Color(0xFF67DD95)), + strokeLineWidth = 0.5f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(137.85f, 79.0f) + lineToRelative(-0.01f, 0.01f) + arcToRelative(0.98f, 0.98f, 0.0f, false, false, -0.13f, 0.73f) + arcToRelative(0.98f, 0.98f, 0.0f, false, false, 0.4f, 0.62f) + curveToRelative(0.22f, 0.15f, 0.49f, 0.17f, 0.73f, 0.13f) + arcToRelative(0.98f, 0.98f, 0.0f, false, false, 0.62f, -0.39f) + curveToRelative(0.83f, -1.14f, 1.26f, -2.51f, 1.05f, -3.89f) + curveToRelative(-0.11f, -1.38f, -0.85f, -2.64f, -1.89f, -3.57f) + curveToRelative(-1.05f, -0.94f, -2.41f, -1.47f, -3.79f, -1.37f) + curveToRelative(-1.38f, 0.0f, -2.74f, 0.64f, -3.68f, 1.58f) + lineToRelative(-4.82f, 4.82f) + curveToRelative(-1.05f, 1.05f, -1.58f, 2.42f, -1.58f, 3.89f) + reflectiveCurveToRelative(0.52f, 2.84f, 1.58f, 3.89f) + curveToRelative(1.05f, 1.05f, 2.42f, 1.58f, 3.89f, 1.58f) + curveToRelative(1.57f, 0.0f, 2.94f, -0.52f, 3.99f, -1.58f) + lineToRelative(0.9f, -0.9f) + arcToRelative(1.04f, 1.04f, 0.0f, false, false, 0.0f, -1.46f) + arcToRelative(1.04f, 1.04f, 0.0f, false, false, -1.46f, 0.0f) + lineToRelative(-0.01f, 0.01f) + lineToRelative(-0.9f, 1.0f) + curveToRelative(-1.31f, 1.3f, -3.65f, 1.3f, -4.96f, 0.0f) + curveToRelative(-0.67f, -0.77f, -1.04f, -1.61f, -1.04f, -2.54f) + curveToRelative(0.0f, -0.94f, 0.38f, -1.88f, 1.03f, -2.54f) + lineToRelative(4.82f, -4.82f) + curveToRelative(0.55f, -0.55f, 1.39f, -0.93f, 2.35f, -1.03f) + curveToRelative(0.84f, 0.0f, 1.66f, 0.28f, 2.3f, 1.11f) + lineToRelative(0.01f, 0.02f) + lineToRelative(0.02f, 0.02f) + curveToRelative(0.66f, 0.56f, 1.13f, 1.41f, 1.22f, 2.25f) + arcToRelative(3.34f, 3.34f, 0.0f, false, true, -0.65f, 2.43f) + close() + moveTo(136.25f, 75.78f) + lineTo(136.25f, 75.77f) + arcToRelative(0.98f, 0.98f, 0.0f, false, false, 0.13f, -0.73f) + arcToRelative(0.98f, 0.98f, 0.0f, false, false, -0.4f, -0.62f) + arcToRelative(0.98f, 0.98f, 0.0f, false, false, -0.73f, -0.13f) + arcToRelative(0.98f, 0.98f, 0.0f, false, false, -0.62f, 0.39f) + curveToRelative(-0.83f, 1.15f, -1.26f, 2.52f, -1.05f, 3.9f) + curveToRelative(0.21f, 1.36f, 0.83f, 2.61f, 1.88f, 3.56f) + curveToRelative(0.96f, 0.96f, 2.23f, 1.37f, 3.59f, 1.37f) + horizontalLineToRelative(0.1f) + curveToRelative(1.38f, 0.0f, 2.75f, -0.63f, 3.69f, -1.58f) + lineToRelative(4.82f, -4.82f) + curveToRelative(1.05f, -1.05f, 1.58f, -2.42f, 1.58f, -3.89f) + reflectiveCurveToRelative(-0.52f, -2.84f, -1.58f, -3.89f) + curveToRelative(-1.05f, -1.05f, -2.42f, -1.58f, -3.89f, -1.58f) + reflectiveCurveToRelative(-2.84f, 0.53f, -3.89f, 1.58f) + lineToRelative(-0.7f, 0.7f) + curveToRelative(-0.19f, 0.19f, -0.31f, 0.44f, -0.35f, 0.7f) + arcToRelative(0.9f, 0.9f, 0.0f, false, false, 0.25f, 0.76f) + arcToRelative(1.04f, 1.04f, 0.0f, false, false, 1.46f, 0.0f) + lineToRelative(0.8f, -0.8f) + curveToRelative(1.31f, -1.31f, 3.65f, -1.31f, 4.96f, -0.01f) + curveToRelative(0.67f, 0.77f, 1.04f, 1.61f, 1.04f, 2.54f) + curveToRelative(0.0f, 0.94f, -0.38f, 1.77f, -0.91f, 2.22f) + lineToRelative(-0.01f, 0.01f) + lineToRelative(-0.01f, 0.01f) + lineToRelative(-4.82f, 4.82f) + curveToRelative(-0.66f, 0.66f, -1.5f, 1.03f, -2.33f, 1.03f) + curveToRelative(-0.95f, 0.0f, -1.8f, -0.28f, -2.45f, -0.84f) + curveToRelative(-0.66f, -0.56f, -1.13f, -1.41f, -1.22f, -2.25f) + arcToRelative(3.34f, 3.34f, 0.0f, false, true, 0.65f, -2.43f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(126.9f, 140.77f) + horizontalLineToRelative(5.36f) + lineTo(132.27f, 142.0f) + horizontalLineToRelative(-6.79f) + verticalLineToRelative(-10.15f) + horizontalLineToRelative(1.43f) + close() + moveTo(134.55f, 131.85f) + verticalLineToRelative(1.54f) + horizontalLineToRelative(-1.27f) + verticalLineToRelative(-1.54f) + close() + moveTo(134.55f, 134.47f) + lineTo(134.55f, 142.0f) + horizontalLineToRelative(-1.27f) + verticalLineToRelative(-7.53f) + close() + moveTo(137.85f, 135.6f) + curveToRelative(0.43f, -0.71f, 1.16f, -1.26f, 2.44f, -1.26f) + curveToRelative(1.82f, 0.0f, 2.48f, 1.18f, 2.48f, 2.9f) + lineTo(142.76f, 142.0f) + horizontalLineToRelative(-1.27f) + verticalLineToRelative(-4.38f) + curveToRelative(0.0f, -1.16f, -0.2f, -2.17f, -1.65f, -2.17f) + curveToRelative(-1.23f, 0.0f, -1.99f, 0.85f, -1.99f, 2.46f) + lineTo(137.85f, 142.0f) + horizontalLineToRelative(-1.27f) + verticalLineToRelative(-7.53f) + horizontalLineToRelative(1.27f) + close() + moveTo(145.94f, 131.85f) + verticalLineToRelative(6.01f) + lineToRelative(3.04f, -3.39f) + horizontalLineToRelative(1.57f) + lineToRelative(-2.87f, 3.12f) + lineToRelative(3.26f, 4.41f) + horizontalLineToRelative(-1.55f) + lineToRelative(-2.56f, -3.47f) + lineToRelative(-0.88f, 0.95f) + lineTo(145.94f, 142.0f) + horizontalLineToRelative(-1.27f) + verticalLineToRelative(-10.15f) + close() + } + }.build() + return _threeCardsTransferTypeDark!! + } + +private var _threeCardsTransferTypeDark: ImageVector? = null + +@Preview +@Composable +private fun Preview() { + val imageVector = AppIllus.ThreeCardsTransferTypeDark + Box { + Image( + imageVector = imageVector, + contentDescription = null, + contentScale = ContentScale.FillBounds, + modifier = Modifier + .size(AppImages.previewSize) + .aspectRatio(imageVector.viewportWidth / imageVector.viewportHeight) + ) + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeLight.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeLight.kt new file mode 100644 index 000000000..6eab07c46 --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeLight.kt @@ -0,0 +1,2034 @@ +package com.infomaniak.swisstransfer.ui.images.illus.onboarding + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.size +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.infomaniak.swisstransfer.ui.images.AppImages +import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus +import androidx.compose.ui.graphics.StrokeCap.Companion.Round as strokeCapRound +import androidx.compose.ui.graphics.StrokeJoin.Companion.Round as strokeJoinRound + +val AppIllus.ThreeCardsTransferTypeLight: ImageVector + get() { + if (_threeCardsTransferTypeLight != null) { + return _threeCardsTransferTypeLight!! + } + _threeCardsTransferTypeLight = Builder( + name = "ThreeCardsTransferTypeLight", + defaultWidth = 296.0.dp, + defaultHeight = 210.0.dp, + viewportWidth = 296.0f, + viewportHeight = 210.0f + ).apply { + path( + fill = SolidColor(Color(0x00000000)), + stroke = SolidColor(Color(0xFF3CB572)), + strokeLineWidth = 2.0f, + strokeLineCap = strokeCapRound, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(270.05f, 200.24f) + curveToRelative(7.94f, 1.49f, 16.46f, -2.26f, 20.13f, -13.08f) + moveTo(278.15f, 206.6f) + curveToRelative(5.49f, 1.06f, 11.33f, -1.38f, 13.78f, -8.6f) + } + path( + fill = SolidColor(Color(0x00000000)), + stroke = SolidColor(Color(0xFF014958)), + strokeLineWidth = 2.0f, + strokeLineCap = strokeCapRound, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(43.28f, 8.95f) + curveToRelative(-8.35f, -1.06f, -16.97f, 3.37f, -20.11f, 14.84f) + moveTo(34.47f, 2.83f) + curveToRelative(-5.77f, -0.76f, -11.69f, 2.14f, -13.79f, 9.79f) + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = SolidColor(Color(0xFF014958)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(148.56f, 49.57f) + lineTo(227.55f, 28.4f) + arcTo(3.06f, 3.06f, 120.0f, false, true, 231.3f, 30.56f) + lineTo(270.87f, 178.24f) + arcTo(3.06f, 3.06f, 120.0f, false, true, 268.71f, 181.99f) + lineTo(189.72f, 203.15f) + arcTo(3.06f, 3.06f, 120.0f, false, true, 185.97f, 200.99f) + lineTo(146.4f, 53.31f) + arcTo(3.06f, 3.06f, 120.0f, false, true, 148.56f, 49.57f) + close() + } + path( + fill = SolidColor(Color(0xFFE3F6DC)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(164.26f, 66.93f) + lineTo(222.64f, 51.29f) + arcTo(1.78f, 1.78f, 120.0f, false, true, 224.82f, 52.54f) + lineTo(242.31f, 117.8f) + arcTo(1.78f, 1.78f, 120.0f, false, true, 241.05f, 119.98f) + lineTo(182.66f, 135.62f) + arcTo(1.78f, 1.78f, 120.0f, false, true, 180.49f, 134.36f) + lineTo(163.0f, 69.11f) + arcTo(1.78f, 1.78f, 120.0f, false, true, 164.26f, 66.93f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(202.65f, 93.45f) + moveToRelative(-20.61f, 5.52f) + arcToRelative(21.33f, 21.33f, 120.0f, true, true, 41.21f, -11.04f) + arcToRelative(21.33f, 21.33f, 120.0f, true, true, -41.21f, 11.04f) + } + path( + fill = SolidColor(Color(0xFF3CB572)), + stroke = SolidColor(Color(0xFF3CB572)), + strokeLineWidth = 0.5f, + strokeLineCap = strokeCapRound, + strokeLineJoin = strokeJoinRound, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(192.47f, 89.02f) + curveToRelative(-1.2f, 0.32f, -1.88f, 1.57f, -1.56f, 2.75f) + lineToRelative(2.76f, 10.3f) + curveToRelative(0.32f, 1.18f, 1.52f, 1.92f, 2.73f, 1.6f) + lineToRelative(16.8f, -4.5f) + curveToRelative(1.2f, -0.32f, 1.88f, -1.57f, 1.56f, -2.75f) + lineToRelative(-2.76f, -10.3f) + curveToRelative(-0.32f, -1.18f, -1.52f, -1.92f, -2.73f, -1.6f) + close() + moveTo(195.43f, 101.6f) + lineTo(192.86f, 91.98f) + lineTo(202.87f, 96.5f) + arcToRelative(0.92f, 0.92f, 0.0f, false, false, 1.12f, -0.3f) + lineToRelative(6.41f, -8.92f) + lineToRelative(2.58f, 9.62f) + arcToRelative(0.4f, 0.4f, 0.0f, false, true, -0.27f, 0.5f) + lineToRelative(-16.8f, 4.5f) + arcToRelative(0.4f, 0.4f, 0.0f, false, true, -0.48f, -0.3f) + moveToRelative(-1.4f, -11.1f) + lineToRelative(14.61f, -3.91f) + lineToRelative(-5.7f, 7.93f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(210.69f, 150.77f) + lineToRelative(-4.44f, -6.95f) + lineToRelative(2.04f, 7.6f) + lineToRelative(-1.23f, 0.33f) + lineToRelative(-2.34f, -8.71f) + lineToRelative(2.06f, -0.55f) + lineToRelative(4.17f, 6.66f) + lineToRelative(0.28f, -7.86f) + lineToRelative(2.06f, -0.55f) + lineToRelative(2.34f, 8.72f) + lineToRelative(-1.23f, 0.33f) + lineToRelative(-2.04f, -7.6f) + lineToRelative(-0.37f, 8.24f) + close() + moveTo(216.67f, 147.34f) + curveToRelative(-0.41f, -1.53f, 1.19f, -2.43f, 3.77f, -3.44f) + lineToRelative(-0.04f, -0.16f) + curveToRelative(-0.32f, -1.18f, -1.08f, -1.4f, -1.89f, -1.18f) + curveToRelative(-0.9f, 0.24f, -1.3f, 0.88f, -1.13f, 1.68f) + lineToRelative(-1.13f, 0.3f) + curveToRelative(-0.26f, -1.42f, 0.75f, -2.53f, 2.01f, -2.87f) + curveToRelative(1.78f, -0.48f, 2.81f, 0.16f, 3.29f, 1.98f) + lineToRelative(0.39f, 1.49f) + curveToRelative(0.28f, 1.09f, 0.54f, 1.81f, 0.82f, 2.39f) + lineToRelative(-1.11f, 0.3f) + arcToRelative(7.0f, 7.0f, 0.0f, false, true, -0.32f, -0.87f) + curveToRelative(-0.22f, 0.77f, -0.79f, 1.33f, -1.93f, 1.64f) + curveToRelative(-1.21f, 0.33f, -2.4f, -0.08f, -2.72f, -1.27f) + moveToRelative(4.08f, -2.6f) + curveToRelative(-1.93f, 0.74f, -3.11f, 1.36f, -2.88f, 2.25f) + curveToRelative(0.16f, 0.61f, 0.74f, 0.9f, 1.52f, 0.69f) + curveToRelative(1.02f, -0.27f, 1.87f, -1.0f, 1.46f, -2.53f) + close() + moveTo(222.99f, 138.14f) + lineTo(223.34f, 139.46f) + lineTo(222.25f, 139.75f) + lineTo(221.89f, 138.43f) + close() + moveTo(223.59f, 140.38f) + lineTo(225.32f, 146.85f) + lineTo(224.23f, 147.14f) + lineTo(222.5f, 140.68f) + close() + moveTo(228.15f, 146.09f) + lineTo(227.06f, 146.39f) + lineTo(224.72f, 137.67f) + lineTo(225.81f, 137.38f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = SolidColor(Color(0xFF014958)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(44.72f, 28.4f) + lineTo(123.71f, 49.57f) + arcTo(3.06f, 3.06f, 60.0f, false, true, 125.87f, 53.31f) + lineTo(86.3f, 200.99f) + arcTo(3.06f, 3.06f, 60.0f, false, true, 82.56f, 203.15f) + lineTo(3.56f, 181.99f) + arcTo(3.06f, 3.06f, 60.0f, false, true, 1.4f, 178.24f) + lineTo(40.97f, 30.56f) + arcTo(3.06f, 3.06f, 60.0f, false, true, 44.72f, 28.4f) + close() + } + path( + fill = SolidColor(Color(0xFFE3F6DC)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(47.91f, 50.83f) + lineTo(108.01f, 66.93f) + arcTo(1.78f, 1.78f, 60.0f, false, true, 109.27f, 69.11f) + lineTo(91.78f, 134.36f) + arcTo(1.78f, 1.78f, 60.0f, false, true, 89.61f, 135.62f) + lineTo(29.5f, 119.52f) + arcTo(1.78f, 1.78f, 60.0f, false, true, 28.25f, 117.34f) + lineTo(45.73f, 52.09f) + arcTo(1.78f, 1.78f, 60.0f, false, true, 47.91f, 50.83f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(56.08f, 69.95f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(55.53f, 72.01f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(54.98f, 74.07f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(54.42f, 76.13f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(53.87f, 78.19f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(53.32f, 80.25f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(58.14f, 70.5f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(55.38f, 80.81f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(60.2f, 71.06f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(59.1f, 75.18f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(58.55f, 77.24f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(57.44f, 81.36f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(62.26f, 71.61f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(61.16f, 75.73f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(60.61f, 77.79f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(59.5f, 81.91f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(64.32f, 72.16f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(61.56f, 82.46f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(66.38f, 72.71f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(65.83f, 74.77f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(65.28f, 76.83f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(64.73f, 78.89f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(64.18f, 80.96f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(63.62f, 83.01f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(77.15f, 106.44f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(76.6f, 108.5f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(76.05f, 110.56f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(75.5f, 112.63f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(74.94f, 114.69f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(74.39f, 116.75f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(79.21f, 107.0f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(76.45f, 117.3f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(81.27f, 107.55f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(80.17f, 111.67f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(79.62f, 113.73f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(78.51f, 117.85f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(83.33f, 108.1f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(82.23f, 112.22f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(81.68f, 114.28f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(80.57f, 118.4f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(85.39f, 108.65f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(82.63f, 118.95f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(87.46f, 109.2f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(86.9f, 111.27f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(86.35f, 113.33f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(85.8f, 115.39f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(85.25f, 117.45f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(84.69f, 119.51f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(52.18f, 84.36f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(51.62f, 86.42f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(51.07f, 88.49f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(50.52f, 90.54f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(49.42f, 94.67f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(48.86f, 96.73f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(48.31f, 98.79f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(47.21f, 102.91f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(46.65f, 104.97f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(46.1f, 107.03f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(45.55f, 109.09f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(54.24f, 84.92f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(53.69f, 86.98f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(50.92f, 97.28f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(49.82f, 101.4f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(48.72f, 105.52f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(47.61f, 109.64f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(56.3f, 85.47f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(54.64f, 91.65f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(52.43f, 99.89f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(51.88f, 101.95f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(51.33f, 104.01f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(50.22f, 108.13f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(49.67f, 110.19f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(56.15f, 94.26f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(55.05f, 98.38f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(54.49f, 100.44f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(53.94f, 102.5f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(53.39f, 104.57f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(52.84f, 106.63f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(52.28f, 108.69f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(51.73f, 110.75f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(60.42f, 86.57f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(59.87f, 88.63f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(59.31f, 90.69f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(58.76f, 92.75f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(56.0f, 103.06f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(55.45f, 105.12f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(54.34f, 109.24f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(60.82f, 93.31f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(60.27f, 95.37f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(58.62f, 101.55f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(58.06f, 103.61f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(57.51f, 105.67f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(55.85f, 111.85f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(61.23f, 100.04f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(59.57f, 106.22f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(58.47f, 110.34f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(70.47f, 73.8f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(67.71f, 84.11f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(62.5f, 87.14f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(63.29f, 100.59f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(62.18f, 104.71f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(61.63f, 106.77f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(61.08f, 108.83f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(59.97f, 112.96f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(72.53f, 74.36f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(71.97f, 76.42f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(71.42f, 78.48f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(70.87f, 80.54f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(70.32f, 82.6f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(69.77f, 84.66f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(66.23f, 110.21f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(62.59f, 111.45f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(62.04f, 113.51f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(74.59f, 74.91f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(74.04f, 76.97f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(72.38f, 83.15f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(71.83f, 85.21f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(64.56f, 87.69f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(65.2f, 109.94f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(64.65f, 112.0f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(64.1f, 114.06f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(75.54f, 79.58f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(74.99f, 81.64f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(61.72f, 97.97f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-1.99f, -0.53f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(68.37f, 106.37f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(66.87f, 103.77f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(67.81f, 108.43f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(67.26f, 110.49f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(66.71f, 112.55f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(66.16f, 114.61f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(78.71f, 76.01f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(77.6f, 80.13f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(77.05f, 82.19f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(75.95f, 86.32f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(71.0f, 104.87f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(70.43f, 106.92f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(79.67f, 80.69f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(78.56f, 84.81f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(78.01f, 86.87f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(77.47f, 88.94f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(78.98f, 91.55f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(76.22f, 101.86f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(64.81f, 103.22f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(73.59f, 103.35f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(73.04f, 105.41f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(71.93f, 109.54f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(71.38f, 111.6f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(70.83f, 113.66f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(84.89f, 77.67f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(84.34f, 79.73f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(83.79f, 81.79f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(83.23f, 83.85f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(82.68f, 85.91f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(82.13f, 87.97f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(81.03f, 92.09f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(80.47f, 94.15f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(79.37f, 98.28f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(78.82f, 100.34f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(78.26f, 102.4f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(86.95f, 78.22f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(84.19f, 88.52f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(82.53f, 94.71f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(81.98f, 96.77f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(81.43f, 98.83f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(80.32f, 102.95f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(89.01f, 78.77f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(87.91f, 82.89f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(87.36f, 84.96f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(86.25f, 89.08f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(84.59f, 95.26f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(84.04f, 97.32f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(83.49f, 99.38f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(82.94f, 101.44f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(82.39f, 103.5f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(91.07f, 79.32f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(89.97f, 83.45f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(89.42f, 85.51f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(88.31f, 89.63f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(87.21f, 93.75f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(85.55f, 99.93f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(93.13f, 79.88f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(90.37f, 90.18f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(89.27f, 94.3f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(88.71f, 96.36f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(88.16f, 98.42f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(87.61f, 100.48f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(87.06f, 102.54f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(86.51f, 104.61f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(95.19f, 80.43f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(94.64f, 82.49f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(94.09f, 84.55f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(93.54f, 86.61f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(92.99f, 88.67f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(92.43f, 90.73f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(90.22f, 98.98f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(89.12f, 103.1f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(75.42f, 88.91f) + lineTo(67.0f, 86.65f) + curveToRelative(-0.58f, -0.16f, -1.19f, 0.22f, -1.36f, 0.85f) + lineToRelative(-2.42f, 9.03f) + curveToRelative(-0.17f, 0.62f, 0.17f, 1.25f, 0.75f, 1.41f) + lineTo(72.4f, 100.2f) + curveToRelative(0.58f, 0.16f, 1.19f, -0.22f, 1.36f, -0.85f) + lineToRelative(2.42f, -9.03f) + curveToRelative(0.17f, -0.62f, -0.17f, -1.26f, -0.75f, -1.41f) + moveTo(54.04f, 147.46f) + lineToRelative(0.76f, 1.31f) + lineToRelative(-0.94f, 0.55f) + lineToRelative(-0.78f, -1.36f) + curveToRelative(-0.74f, 0.25f, -1.57f, 0.28f, -2.44f, 0.04f) + curveToRelative(-2.51f, -0.67f, -3.58f, -2.98f, -2.88f, -5.61f) + curveToRelative(0.7f, -2.63f, 2.78f, -4.09f, 5.29f, -3.41f) + curveToRelative(2.51f, 0.67f, 3.59f, 2.97f, 2.88f, 5.6f) + curveToRelative(-0.34f, 1.27f, -1.01f, 2.27f, -1.88f, 2.88f) + moveToRelative(-3.14f, -0.49f) + arcToRelative(2.77f, 2.77f, 0.0f, false, false, 1.58f, -0.03f) + lineToRelative(-0.59f, -1.02f) + lineToRelative(0.95f, -0.56f) + lineToRelative(0.59f, 1.03f) + curveToRelative(0.55f, -0.47f, 0.99f, -1.18f, 1.25f, -2.15f) + curveToRelative(0.6f, -2.25f, -0.32f, -3.81f, -1.91f, -4.23f) + curveToRelative(-1.59f, -0.43f, -3.17f, 0.47f, -3.77f, 2.71f) + reflectiveCurveToRelative(0.32f, 3.82f, 1.9f, 4.25f) + moveToRelative(9.91f, -0.35f) + curveToRelative(-0.22f, -0.05f, -0.44f, -0.1f, -0.66f, -0.17f) + lineToRelative(-1.54f, -0.41f) + lineToRelative(-0.98f, 3.67f) + lineToRelative(-1.23f, -0.33f) + lineToRelative(2.34f, -8.72f) + lineToRelative(2.77f, 0.74f) + curveToRelative(2.13f, 0.57f, 3.52f, 1.39f, 2.96f, 3.48f) + curveToRelative(-0.37f, 1.38f, -1.21f, 1.87f, -2.36f, 1.87f) + lineToRelative(0.98f, 4.41f) + lineToRelative(-1.37f, -0.37f) + close() + moveTo(59.69f, 142.03f) + lineTo(58.89f, 145.01f) + lineTo(60.52f, 145.45f) + curveToRelative(1.27f, 0.34f, 2.31f, 0.48f, 2.67f, -0.87f) + reflectiveCurveToRelative(-0.6f, -1.77f, -1.87f, -2.11f) + close() + } + path( + fill = SolidColor(Color(0xFF3CB572)), + stroke = SolidColor(Color(0xFF014958)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(91.0f, 13.5f) + lineTo(183.0f, 13.5f) + arcTo(3.5f, 3.5f, 0.0f, false, true, 186.5f, 17.0f) + lineTo(186.5f, 189.0f) + arcTo(3.5f, 3.5f, 0.0f, false, true, 183.0f, 192.5f) + lineTo(91.0f, 192.5f) + arcTo(3.5f, 3.5f, 0.0f, false, true, 87.5f, 189.0f) + lineTo(87.5f, 17.0f) + arcTo(3.5f, 3.5f, 0.0f, false, true, 91.0f, 13.5f) + close() + } + path( + fill = SolidColor(Color(0xFFE3F6DC)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(103.0f, 37.0f) + lineTo(171.0f, 37.0f) + arcTo(2.0f, 2.0f, 0.0f, false, true, 173.0f, 39.0f) + lineTo(173.0f, 115.0f) + arcTo(2.0f, 2.0f, 0.0f, false, true, 171.0f, 117.0f) + lineTo(103.0f, 117.0f) + arcTo(2.0f, 2.0f, 0.0f, false, true, 101.0f, 115.0f) + lineTo(101.0f, 39.0f) + arcTo(2.0f, 2.0f, 0.0f, false, true, 103.0f, 37.0f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(137.0f, 77.0f) + moveToRelative(-24.0f, 0.0f) + arcToRelative(24.0f, 24.0f, 0.0f, true, true, 48.0f, 0.0f) + arcToRelative(24.0f, 24.0f, 0.0f, true, true, -48.0f, 0.0f) + } + path( + fill = SolidColor(Color(0xFF3CB572)), + stroke = SolidColor(Color(0xFF3CB572)), + strokeLineWidth = 0.5f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(137.85f, 79.0f) + lineToRelative(-0.01f, 0.01f) + arcToRelative(0.98f, 0.98f, 0.0f, false, false, -0.13f, 0.73f) + arcToRelative(0.98f, 0.98f, 0.0f, false, false, 0.4f, 0.62f) + curveToRelative(0.22f, 0.15f, 0.49f, 0.17f, 0.73f, 0.13f) + arcToRelative(0.98f, 0.98f, 0.0f, false, false, 0.62f, -0.39f) + curveToRelative(0.83f, -1.14f, 1.26f, -2.51f, 1.05f, -3.89f) + curveToRelative(-0.11f, -1.38f, -0.85f, -2.64f, -1.89f, -3.57f) + curveToRelative(-1.05f, -0.94f, -2.41f, -1.47f, -3.79f, -1.37f) + curveToRelative(-1.38f, 0.0f, -2.74f, 0.64f, -3.68f, 1.58f) + lineToRelative(-4.82f, 4.82f) + curveToRelative(-1.05f, 1.05f, -1.58f, 2.42f, -1.58f, 3.89f) + reflectiveCurveToRelative(0.52f, 2.84f, 1.58f, 3.89f) + curveToRelative(1.05f, 1.05f, 2.42f, 1.58f, 3.89f, 1.58f) + curveToRelative(1.57f, 0.0f, 2.94f, -0.52f, 3.99f, -1.58f) + lineToRelative(0.9f, -0.9f) + arcToRelative(1.04f, 1.04f, 0.0f, false, false, 0.0f, -1.46f) + arcToRelative(1.04f, 1.04f, 0.0f, false, false, -1.46f, 0.0f) + lineToRelative(-0.01f, 0.01f) + lineToRelative(-0.9f, 1.0f) + curveToRelative(-1.31f, 1.3f, -3.65f, 1.3f, -4.96f, 0.0f) + curveToRelative(-0.67f, -0.77f, -1.04f, -1.61f, -1.04f, -2.54f) + curveToRelative(0.0f, -0.94f, 0.38f, -1.88f, 1.03f, -2.54f) + lineToRelative(4.82f, -4.82f) + curveToRelative(0.55f, -0.55f, 1.39f, -0.93f, 2.35f, -1.03f) + curveToRelative(0.84f, 0.0f, 1.66f, 0.28f, 2.3f, 1.11f) + lineToRelative(0.01f, 0.02f) + lineToRelative(0.02f, 0.02f) + curveToRelative(0.66f, 0.56f, 1.13f, 1.41f, 1.22f, 2.25f) + arcToRelative(3.34f, 3.34f, 0.0f, false, true, -0.65f, 2.43f) + close() + moveTo(136.25f, 75.78f) + lineTo(136.25f, 75.77f) + arcToRelative(0.98f, 0.98f, 0.0f, false, false, 0.13f, -0.73f) + arcToRelative(0.98f, 0.98f, 0.0f, false, false, -0.4f, -0.62f) + arcToRelative(0.98f, 0.98f, 0.0f, false, false, -0.73f, -0.13f) + arcToRelative(0.98f, 0.98f, 0.0f, false, false, -0.62f, 0.39f) + curveToRelative(-0.83f, 1.15f, -1.26f, 2.52f, -1.05f, 3.9f) + curveToRelative(0.21f, 1.36f, 0.83f, 2.61f, 1.88f, 3.56f) + curveToRelative(0.96f, 0.96f, 2.23f, 1.37f, 3.59f, 1.37f) + horizontalLineToRelative(0.1f) + curveToRelative(1.38f, 0.0f, 2.75f, -0.63f, 3.69f, -1.58f) + lineToRelative(4.82f, -4.82f) + curveToRelative(1.05f, -1.05f, 1.58f, -2.42f, 1.58f, -3.89f) + reflectiveCurveToRelative(-0.52f, -2.84f, -1.58f, -3.89f) + curveToRelative(-1.05f, -1.05f, -2.42f, -1.58f, -3.89f, -1.58f) + reflectiveCurveToRelative(-2.84f, 0.53f, -3.89f, 1.58f) + lineToRelative(-0.7f, 0.7f) + curveToRelative(-0.19f, 0.19f, -0.31f, 0.44f, -0.35f, 0.7f) + arcToRelative(0.9f, 0.9f, 0.0f, false, false, 0.25f, 0.76f) + arcToRelative(1.04f, 1.04f, 0.0f, false, false, 1.46f, 0.0f) + lineToRelative(0.8f, -0.8f) + curveToRelative(1.31f, -1.31f, 3.65f, -1.31f, 4.96f, -0.01f) + curveToRelative(0.67f, 0.77f, 1.04f, 1.61f, 1.04f, 2.54f) + curveToRelative(0.0f, 0.94f, -0.38f, 1.77f, -0.91f, 2.22f) + lineToRelative(-0.01f, 0.01f) + lineToRelative(-0.01f, 0.01f) + lineToRelative(-4.82f, 4.82f) + curveToRelative(-0.66f, 0.66f, -1.5f, 1.03f, -2.33f, 1.03f) + curveToRelative(-0.95f, 0.0f, -1.8f, -0.28f, -2.45f, -0.84f) + curveToRelative(-0.66f, -0.56f, -1.13f, -1.41f, -1.22f, -2.25f) + arcToRelative(3.34f, 3.34f, 0.0f, false, true, 0.65f, -2.43f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(126.9f, 140.77f) + horizontalLineToRelative(5.36f) + lineTo(132.27f, 142.0f) + horizontalLineToRelative(-6.79f) + verticalLineToRelative(-10.15f) + horizontalLineToRelative(1.43f) + close() + moveTo(134.55f, 131.85f) + verticalLineToRelative(1.54f) + horizontalLineToRelative(-1.27f) + verticalLineToRelative(-1.54f) + close() + moveTo(134.55f, 134.47f) + lineTo(134.55f, 142.0f) + horizontalLineToRelative(-1.27f) + verticalLineToRelative(-7.53f) + close() + moveTo(137.85f, 135.6f) + curveToRelative(0.43f, -0.71f, 1.16f, -1.26f, 2.44f, -1.26f) + curveToRelative(1.82f, 0.0f, 2.48f, 1.18f, 2.48f, 2.9f) + lineTo(142.76f, 142.0f) + horizontalLineToRelative(-1.27f) + verticalLineToRelative(-4.38f) + curveToRelative(0.0f, -1.16f, -0.2f, -2.17f, -1.65f, -2.17f) + curveToRelative(-1.23f, 0.0f, -1.99f, 0.85f, -1.99f, 2.46f) + lineTo(137.85f, 142.0f) + horizontalLineToRelative(-1.27f) + verticalLineToRelative(-7.53f) + horizontalLineToRelative(1.27f) + close() + moveTo(145.94f, 131.85f) + verticalLineToRelative(6.01f) + lineToRelative(3.04f, -3.39f) + horizontalLineToRelative(1.57f) + lineToRelative(-2.87f, 3.12f) + lineToRelative(3.26f, 4.41f) + horizontalLineToRelative(-1.55f) + lineToRelative(-2.56f, -3.47f) + lineToRelative(-0.88f, 0.95f) + lineTo(145.94f, 142.0f) + horizontalLineToRelative(-1.27f) + verticalLineToRelative(-10.15f) + close() + } + }.build() + return _threeCardsTransferTypeLight!! + } + +private var _threeCardsTransferTypeLight: ImageVector? = null + +@Preview +@Composable +private fun Preview() { + val imageVector = AppIllus.ThreeCardsTransferTypeLight + Box { + Image( + imageVector = imageVector, + contentDescription = null, + contentScale = ContentScale.FillBounds, + modifier = Modifier + .size(AppImages.previewSize) + .aspectRatio(imageVector.viewportWidth / imageVector.viewportHeight) + ) + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStars.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStars.kt new file mode 100644 index 000000000..45b45a5a9 --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStars.kt @@ -0,0 +1,63 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.infomaniak.swisstransfer.ui.images.illus.onboarding + + +import android.content.res.Configuration +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.size +import androidx.compose.material3.Surface +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.tooling.preview.Preview +import com.infomaniak.swisstransfer.ui.images.AppImages +import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus +import com.infomaniak.swisstransfer.ui.images.ThemedImage +import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme + +val AppIllus.TwoPadlocksIntertwinedStars: ThemedImage + get() = _twoPadlocksIntertwinedStars ?: object : ThemedImage { + override val light = AppIllus.TwoPadlocksIntertwinedStarsLight + override val dark = AppIllus.TwoPadlocksIntertwinedStarsDark + }.also { _twoPadlocksIntertwinedStars = it } + +private var _twoPadlocksIntertwinedStars: ThemedImage? = null + +@Preview(name = "Light") +@Preview(name = "Dark", uiMode = Configuration.UI_MODE_NIGHT_YES or Configuration.UI_MODE_TYPE_NORMAL) +@Composable +private fun Preview() { + SwissTransferTheme { + Surface { + val imageVector = AppIllus.TwoPadlocksIntertwinedStars.image() + Box { + Image( + imageVector = imageVector, + contentDescription = null, + contentScale = ContentScale.FillBounds, + modifier = Modifier + .size(AppImages.previewSize) + .aspectRatio(imageVector.viewportWidth / imageVector.viewportHeight) + ) + } + } + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsDark.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsDark.kt new file mode 100644 index 000000000..f7a376e7b --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsDark.kt @@ -0,0 +1,381 @@ +package com.infomaniak.swisstransfer.ui.images.illus.onboarding + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.size +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.EvenOdd +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.infomaniak.swisstransfer.ui.images.AppImages +import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus + +val AppIllus.TwoPadlocksIntertwinedStarsDark: ImageVector + get() { + if (_twoPadlocksIntertwinedStarsDark != null) { + return _twoPadlocksIntertwinedStarsDark!! + } + _twoPadlocksIntertwinedStarsDark = Builder( + name = "TwoPadlocksIntertwinedStarsDark", + defaultWidth = 240.0.dp, + defaultHeight = 192.0.dp, + viewportWidth = 240.0f, + viewportHeight = 192.0f + ).apply { + path( + fill = SolidColor(Color(0x00000000)), + stroke = SolidColor(Color(0xFF67DD95)), + strokeLineWidth = 9.78f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(124.45f, 89.52f) + lineTo(124.45f, 89.52f) + arcTo(27.3f, 27.3f, 56.26f, false, true, 116.99f, 127.39f) + lineTo(90.87f, 144.91f) + arcTo(27.3f, 27.3f, 56.26f, false, true, 53.0f, 137.45f) + lineTo(53.0f, 137.45f) + arcTo(27.3f, 27.3f, 56.26f, false, true, 60.46f, 99.58f) + lineTo(86.58f, 82.06f) + arcTo(27.3f, 27.3f, 56.26f, false, true, 124.45f, 89.52f) + close() + } + path( + fill = SolidColor(Color(0x00000000)), + stroke = SolidColor(Color(0xFF3C4F52)), + strokeLineWidth = 9.776f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(183.29f, 139.5f) + lineTo(183.29f, 139.5f) + arcTo(27.3f, 27.3f, 120.47f, false, true, 145.94f, 149.26f) + lineTo(118.8f, 133.36f) + arcTo(27.3f, 27.3f, 120.47f, false, true, 109.04f, 96.02f) + lineTo(109.04f, 96.02f) + arcTo(27.3f, 27.3f, 120.47f, false, true, 146.39f, 86.26f) + lineTo(173.53f, 102.15f) + arcTo(27.3f, 27.3f, 120.47f, false, true, 183.29f, 139.5f) + close() + } + path( + fill = SolidColor(Color(0xFF67DD95)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(117.85f, 121.01f) + lineToRelative(4.43f, 8.51f) + lineToRelative(-16.53f, 11.3f) + lineToRelative(-5.41f, -8.06f) + close() + } + path( + fill = SolidColor(Color(0xFF3C4F52)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 0.5f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(55.33f, 86.87f) + arcToRelative(7.9f, 7.9f, 0.0f, false, true, 10.96f, 2.16f) + lineToRelative(36.56f, 54.5f) + arcToRelative(7.9f, 7.9f, 0.0f, false, true, -2.16f, 10.96f) + lineToRelative(-48.43f, 32.48f) + arcToRelative(7.89f, 7.89f, 0.0f, false, true, -10.96f, -2.16f) + lineTo(4.75f, 130.31f) + arcToRelative(7.9f, 7.9f, 0.0f, false, true, 2.16f, -10.96f) + close() + } + path( + fill = SolidColor(Color(0xFF152123)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = EvenOdd + ) { + moveTo(52.15f, 142.74f) + arcToRelative(8.26f, 8.26f, 0.0f, true, false, -4.26f, -6.35f) + lineToRelative(-5.37f, 3.6f) + arcToRelative(3.82f, 3.82f, 0.0f, true, false, 4.26f, 6.35f) + close() + } + group { + path( + fill = SolidColor(Color(0xFFDCE4E5)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(52.15f, 142.74f) + lineToRelative(0.24f, -0.44f) + lineToRelative(-0.27f, -0.14f) + lineToRelative(-0.25f, 0.17f) + close() + moveTo(47.89f, 136.39f) + lineTo(48.17f, 136.81f) + lineTo(48.42f, 136.64f) + lineTo(48.38f, 136.34f) + close() + moveTo(42.52f, 139.99f) + lineTo(42.79f, 140.41f) + close() + moveTo(60.42f, 141.93f) + arcToRelative(7.76f, 7.76f, 0.0f, false, true, -8.04f, 0.37f) + lineToRelative(-0.48f, 0.88f) + arcToRelative(8.76f, 8.76f, 0.0f, false, false, 9.07f, -0.42f) + close() + moveTo(62.55f, 131.16f) + arcToRelative(7.76f, 7.76f, 0.0f, false, true, -2.12f, 10.77f) + lineToRelative(0.56f, 0.83f) + arcToRelative(8.76f, 8.76f, 0.0f, false, false, 2.4f, -12.16f) + close() + moveTo(51.78f, 129.04f) + arcToRelative(7.76f, 7.76f, 0.0f, false, true, 10.77f, 2.12f) + lineToRelative(0.83f, -0.56f) + arcToRelative(8.76f, 8.76f, 0.0f, false, false, -12.16f, -2.39f) + close() + moveTo(48.38f, 136.34f) + arcToRelative(7.76f, 7.76f, 0.0f, false, true, 3.39f, -7.3f) + lineToRelative(-0.56f, -0.83f) + arcToRelative(8.76f, 8.76f, 0.0f, false, false, -3.83f, 8.24f) + close() + moveTo(42.79f, 140.41f) + lineTo(48.17f, 136.81f) + lineTo(47.61f, 135.98f) + lineTo(42.24f, 139.58f) + close() + moveTo(41.89f, 145.02f) + arcToRelative(3.32f, 3.32f, 0.0f, false, true, 0.91f, -4.61f) + lineToRelative(-0.56f, -0.83f) + arcToRelative(4.32f, 4.32f, 0.0f, false, false, -1.18f, 6.0f) + close() + moveTo(46.5f, 145.93f) + arcToRelative(3.32f, 3.32f, 0.0f, false, true, -4.61f, -0.91f) + lineToRelative(-0.83f, 0.56f) + arcToRelative(4.32f, 4.32f, 0.0f, false, false, 6.0f, 1.18f) + close() + moveTo(51.87f, 142.33f) + lineTo(46.5f, 145.93f) + lineTo(47.05f, 146.76f) + lineTo(52.43f, 143.16f) + close() + } + path( + fill = SolidColor(Color(0xFF3C4F52)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 0.5f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(232.83f, 117.07f) + arcToRelative(7.9f, 7.9f, 0.0f, false, true, 2.86f, 10.79f) + lineToRelative(-32.96f, 56.75f) + arcToRelative(7.9f, 7.9f, 0.0f, false, true, -10.79f, 2.86f) + lineToRelative(-50.43f, -29.29f) + arcToRelative(7.9f, 7.9f, 0.0f, false, true, -2.86f, -10.79f) + lineToRelative(32.96f, -56.75f) + arcToRelative(7.9f, 7.9f, 0.0f, false, true, 10.79f, -2.86f) + close() + } + path( + fill = SolidColor(Color(0xFF152123)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = EvenOdd + ) { + moveTo(189.63f, 134.73f) + arcToRelative(8.26f, 8.26f, 0.0f, false, false, -4.13f, -7.51f) + arcToRelative(8.26f, 8.26f, 0.0f, false, false, -11.29f, 3.02f) + arcToRelative(8.26f, 8.26f, 0.0f, false, false, 3.02f, 11.29f) + arcToRelative(8.26f, 8.26f, 0.0f, false, false, 8.56f, -0.18f) + lineToRelative(5.6f, 3.23f) + arcToRelative(3.82f, 3.82f, 0.0f, true, false, 3.82f, -6.62f) + close() + } + } + group { + path( + fill = SolidColor(Color(0xFFDCE4E5)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(189.63f, 134.73f) + lineToRelative(-0.5f, -0.02f) + lineToRelative(-0.01f, 0.3f) + lineToRelative(0.26f, 0.15f) + close() + moveTo(185.81f, 141.35f) + lineTo(186.06f, 140.92f) + lineTo(185.79f, 140.77f) + lineTo(185.54f, 140.93f) + close() + moveTo(195.23f, 137.97f) + lineTo(194.98f, 138.4f) + close() + moveTo(185.25f, 127.66f) + arcToRelative(7.76f, 7.76f, 0.0f, false, true, 3.88f, 7.05f) + lineToRelative(1.0f, 0.04f) + arcToRelative(8.76f, 8.76f, 0.0f, false, false, -4.38f, -7.96f) + close() + moveTo(174.65f, 130.5f) + arcToRelative(7.76f, 7.76f, 0.0f, false, true, 10.6f, -2.84f) + lineToRelative(0.5f, -0.87f) + arcTo(8.76f, 8.76f, 0.0f, false, false, 173.78f, 130.0f) + close() + moveTo(177.49f, 141.1f) + arcToRelative(7.76f, 7.76f, 0.0f, false, true, -2.84f, -10.6f) + lineToRelative(-0.87f, -0.5f) + arcToRelative(8.76f, 8.76f, 0.0f, false, false, 3.21f, 11.97f) + close() + moveTo(185.54f, 140.93f) + arcToRelative(7.76f, 7.76f, 0.0f, false, true, -8.05f, 0.17f) + lineToRelative(-0.5f, 0.87f) + arcToRelative(8.76f, 8.76f, 0.0f, false, false, 9.08f, -0.19f) + close() + moveTo(191.66f, 144.15f) + lineTo(186.06f, 140.92f) + lineTo(185.56f, 141.79f) + lineTo(191.16f, 145.02f) + close() + moveTo(196.2f, 142.94f) + arcToRelative(3.32f, 3.32f, 0.0f, false, true, -4.54f, 1.22f) + lineToRelative(-0.5f, 0.87f) + arcToRelative(4.32f, 4.32f, 0.0f, false, false, 5.91f, -1.58f) + close() + moveTo(194.98f, 138.4f) + arcToRelative(3.32f, 3.32f, 0.0f, false, true, 1.22f, 4.54f) + lineToRelative(0.87f, 0.5f) + arcToRelative(4.32f, 4.32f, 0.0f, false, false, -1.58f, -5.91f) + close() + moveTo(189.38f, 135.17f) + lineTo(194.98f, 138.4f) + lineTo(195.48f, 137.53f) + lineTo(189.88f, 134.3f) + close() + } + path( + fill = SolidColor(Color(0xFF67DD95)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(109.05f, 14.08f) + lineToRelative(2.95f, -9.28f) + lineToRelative(-4.76f, -1.51f) + lineToRelative(-2.95f, 9.28f) + lineToRelative(-7.75f, -6.15f) + lineToRelative(-2.95f, 3.87f) + lineToRelative(7.82f, 5.92f) + lineToRelative(-7.89f, 5.91f) + lineToRelative(3.29f, 3.96f) + lineToRelative(7.8f, -6.19f) + lineToRelative(3.27f, 9.71f) + lineToRelative(4.45f, -1.59f) + lineToRelative(-2.98f, -9.27f) + lineToRelative(9.96f, -0.27f) + lineToRelative(-0.41f, -4.94f) + close() + } + path( + fill = SolidColor(Color(0xFFDCE4E5)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(80.06f, 52.37f) + lineToRelative(1.02f, -3.23f) + lineToRelative(-1.65f, -0.52f) + lineToRelative(-1.03f, 3.23f) + lineToRelative(-2.7f, -2.14f) + lineToRelative(-1.02f, 1.35f) + lineToRelative(2.72f, 2.06f) + lineToRelative(-2.74f, 2.06f) + lineToRelative(1.15f, 1.38f) + lineToRelative(2.72f, -2.16f) + lineToRelative(1.14f, 3.38f) + lineToRelative(1.55f, -0.55f) + lineToRelative(-1.04f, -3.23f) + lineToRelative(3.46f, -0.09f) + lineToRelative(-0.14f, -1.72f) + close() + moveTo(148.2f, 33.79f) + lineToRelative(1.53f, -4.82f) + lineToRelative(-2.47f, -0.79f) + lineToRelative(-1.53f, 4.82f) + lineToRelative(-4.03f, -3.2f) + lineToRelative(-1.53f, 2.01f) + lineToRelative(4.06f, 3.07f) + lineToRelative(-4.1f, 3.07f) + lineToRelative(1.71f, 2.06f) + lineToRelative(4.05f, -3.22f) + lineToRelative(1.7f, 5.05f) + lineToRelative(2.31f, -0.83f) + lineToRelative(-1.55f, -4.82f) + lineToRelative(5.18f, -0.14f) + lineToRelative(-0.21f, -2.57f) + close() + } + } + }.build() + return _twoPadlocksIntertwinedStarsDark!! + } + +private var _twoPadlocksIntertwinedStarsDark: ImageVector? = null + +@Preview +@Composable +private fun Preview() { + val imageVector = AppIllus.TwoPadlocksIntertwinedStarsDark + Box { + Image( + imageVector = imageVector, + contentDescription = null, + contentScale = ContentScale.FillBounds, + modifier = Modifier + .size(AppImages.previewSize) + .aspectRatio(imageVector.viewportWidth / imageVector.viewportHeight) + ) + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsLight.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsLight.kt new file mode 100644 index 000000000..34a9c3e22 --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsLight.kt @@ -0,0 +1,378 @@ +package com.infomaniak.swisstransfer.ui.images.illus.onboarding + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.size +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.EvenOdd +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.infomaniak.swisstransfer.ui.images.AppImages +import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus + +val AppIllus.TwoPadlocksIntertwinedStarsLight: ImageVector + get() { + if (_twoPadlocksIntertwinedStarsLight != null) { + return _twoPadlocksIntertwinedStarsLight!! + } + _twoPadlocksIntertwinedStarsLight = Builder( + name = "TwoPadlocksIntertwinedStarsLight", + defaultWidth = 240.0.dp, + defaultHeight = 192.0.dp, + viewportWidth = 240.0f, + viewportHeight = 192.0f + ).apply { + path( + fill = SolidColor(Color(0x00000000)), + stroke = SolidColor(Color(0xFF3CB572)), + strokeLineWidth = 9.78f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(124.45f, 89.52f) + lineTo(124.45f, 89.52f) + arcTo(27.3f, 27.3f, 56.26f, false, true, 116.99f, 127.39f) + lineTo(90.87f, 144.91f) + arcTo(27.3f, 27.3f, 56.26f, false, true, 53.0f, 137.45f) + lineTo(53.0f, 137.45f) + arcTo(27.3f, 27.3f, 56.26f, false, true, 60.46f, 99.58f) + lineTo(86.58f, 82.06f) + arcTo(27.3f, 27.3f, 56.26f, false, true, 124.45f, 89.52f) + close() + } + path( + fill = SolidColor(Color(0x00000000)), + stroke = SolidColor(Color(0xFF014958)), + strokeLineWidth = 9.776f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(183.29f, 139.5f) + lineTo(183.29f, 139.5f) + arcTo(27.3f, 27.3f, 120.47f, false, true, 145.94f, 149.26f) + lineTo(118.8f, 133.36f) + arcTo(27.3f, 27.3f, 120.47f, false, true, 109.04f, 96.02f) + lineTo(109.04f, 96.02f) + arcTo(27.3f, 27.3f, 120.47f, false, true, 146.39f, 86.26f) + lineTo(173.53f, 102.15f) + arcTo(27.3f, 27.3f, 120.47f, false, true, 183.29f, 139.5f) + close() + } + path( + fill = SolidColor(Color(0xFF3CB572)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(117.85f, 121.01f) + lineToRelative(4.43f, 8.51f) + lineToRelative(-16.53f, 11.3f) + lineToRelative(-5.41f, -8.06f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = SolidColor(Color(0xFF014958)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(55.47f, 87.07f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, 10.61f, 2.09f) + lineToRelative(36.56f, 54.5f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, -2.09f, 10.61f) + lineToRelative(-48.43f, 32.49f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, -10.61f, -2.09f) + lineTo(4.95f, 130.17f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, 2.09f, -10.61f) + close() + } + path( + fill = SolidColor(Color(0xFFE3F6DC)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = EvenOdd + ) { + moveTo(52.15f, 142.74f) + arcToRelative(8.26f, 8.26f, 0.0f, true, false, -4.26f, -6.35f) + lineToRelative(-5.37f, 3.6f) + arcToRelative(3.82f, 3.82f, 0.0f, true, false, 4.26f, 6.35f) + close() + } + group { + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(52.15f, 142.74f) + lineToRelative(0.48f, -0.88f) + lineToRelative(-0.53f, -0.29f) + lineToRelative(-0.5f, 0.34f) + close() + moveTo(47.89f, 136.39f) + lineTo(48.44f, 137.22f) + lineTo(48.95f, 136.88f) + lineTo(48.88f, 136.28f) + close() + moveTo(60.15f, 141.51f) + arcToRelative(7.26f, 7.26f, 0.0f, false, true, -7.52f, 0.35f) + lineToRelative(-0.95f, 1.76f) + arcToRelative(9.26f, 9.26f, 0.0f, false, false, 9.59f, -0.44f) + close() + moveTo(62.13f, 131.44f) + arcToRelative(7.26f, 7.26f, 0.0f, false, true, -1.99f, 10.08f) + lineToRelative(1.11f, 1.66f) + arcToRelative(9.26f, 9.26f, 0.0f, false, false, 2.53f, -12.85f) + close() + moveTo(52.06f, 129.45f) + arcToRelative(7.26f, 7.26f, 0.0f, false, true, 10.08f, 1.99f) + lineToRelative(1.66f, -1.11f) + arcToRelative(9.26f, 9.26f, 0.0f, false, false, -12.85f, -2.53f) + close() + moveTo(48.88f, 136.28f) + arcToRelative(7.26f, 7.26f, 0.0f, false, true, 3.17f, -6.83f) + lineToRelative(-1.11f, -1.66f) + arcToRelative(9.26f, 9.26f, 0.0f, false, false, -4.05f, 8.71f) + close() + moveTo(43.07f, 140.82f) + lineTo(48.44f, 137.22f) + lineTo(47.33f, 135.56f) + lineTo(41.96f, 139.16f) + close() + moveTo(42.3f, 144.74f) + arcToRelative(2.82f, 2.82f, 0.0f, false, true, 0.77f, -3.92f) + lineToRelative(-1.11f, -1.66f) + arcToRelative(4.82f, 4.82f, 0.0f, false, false, -1.32f, 6.69f) + close() + moveTo(46.22f, 145.51f) + arcToRelative(2.82f, 2.82f, 0.0f, false, true, -3.92f, -0.77f) + lineToRelative(-1.66f, 1.11f) + arcToRelative(4.82f, 4.82f, 0.0f, false, false, 6.69f, 1.32f) + close() + moveTo(51.59f, 141.91f) + lineTo(46.22f, 145.51f) + lineTo(47.33f, 147.17f) + lineTo(52.7f, 143.57f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = SolidColor(Color(0xFF014958)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(232.7f, 117.28f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, 2.77f, 10.45f) + lineToRelative(-32.96f, 56.75f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, -10.45f, 2.77f) + lineToRelative(-50.43f, -29.29f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, -2.77f, -10.45f) + lineToRelative(32.96f, -56.75f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, 10.45f, -2.77f) + close() + } + path( + fill = SolidColor(Color(0xFFE3F6DC)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = EvenOdd + ) { + moveTo(189.63f, 134.73f) + arcToRelative(8.26f, 8.26f, 0.0f, false, false, -4.13f, -7.51f) + arcToRelative(8.26f, 8.26f, 0.0f, false, false, -11.29f, 3.02f) + arcToRelative(8.26f, 8.26f, 0.0f, false, false, 3.02f, 11.29f) + arcToRelative(8.26f, 8.26f, 0.0f, false, false, 8.56f, -0.18f) + lineToRelative(5.6f, 3.23f) + arcToRelative(3.82f, 3.82f, 0.0f, true, false, 3.82f, -6.62f) + close() + } + } + group { + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(189.63f, 134.73f) + lineToRelative(-1.0f, -0.04f) + lineToRelative(-0.03f, 0.61f) + lineToRelative(0.52f, 0.3f) + close() + moveTo(185.81f, 141.35f) + lineTo(186.31f, 140.49f) + lineTo(185.78f, 140.19f) + lineTo(185.27f, 140.51f) + close() + moveTo(195.23f, 137.97f) + lineTo(194.73f, 138.83f) + close() + moveTo(185.0f, 128.09f) + arcToRelative(7.26f, 7.26f, 0.0f, false, true, 3.63f, 6.6f) + lineToRelative(2.0f, 0.08f) + arcToRelative(9.26f, 9.26f, 0.0f, false, false, -4.62f, -8.41f) + close() + moveTo(175.08f, 130.75f) + arcToRelative(7.26f, 7.26f, 0.0f, false, true, 9.92f, -2.66f) + lineToRelative(1.0f, -1.73f) + arcToRelative(9.26f, 9.26f, 0.0f, false, false, -12.65f, 3.39f) + close() + moveTo(177.74f, 140.67f) + arcToRelative(7.26f, 7.26f, 0.0f, false, true, -2.66f, -9.92f) + lineToRelative(-1.73f, -1.0f) + arcToRelative(9.26f, 9.26f, 0.0f, false, false, 3.39f, 12.65f) + close() + moveTo(185.27f, 140.51f) + arcToRelative(7.26f, 7.26f, 0.0f, false, true, -7.53f, 0.16f) + lineToRelative(-1.0f, 1.73f) + arcToRelative(9.26f, 9.26f, 0.0f, false, false, 9.6f, -0.2f) + close() + moveTo(191.91f, 143.72f) + lineTo(186.31f, 140.49f) + lineTo(185.31f, 142.22f) + lineTo(190.91f, 145.45f) + close() + moveTo(195.76f, 142.69f) + arcToRelative(2.82f, 2.82f, 0.0f, false, true, -3.86f, 1.03f) + lineToRelative(-1.0f, 1.73f) + arcToRelative(4.82f, 4.82f, 0.0f, false, false, 6.59f, -1.76f) + close() + moveTo(194.73f, 138.83f) + arcToRelative(2.82f, 2.82f, 0.0f, false, true, 1.03f, 3.86f) + lineToRelative(1.73f, 1.0f) + arcToRelative(4.82f, 4.82f, 0.0f, false, false, -1.77f, -6.59f) + close() + moveTo(189.13f, 135.6f) + lineTo(194.73f, 138.83f) + lineTo(195.73f, 137.1f) + lineTo(190.13f, 133.87f) + close() + } + path( + fill = SolidColor(Color(0xFF3CB572)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(109.05f, 14.08f) + lineToRelative(2.95f, -9.28f) + lineToRelative(-4.76f, -1.51f) + lineToRelative(-2.95f, 9.28f) + lineToRelative(-7.75f, -6.15f) + lineToRelative(-2.95f, 3.87f) + lineToRelative(7.82f, 5.92f) + lineToRelative(-7.89f, 5.91f) + lineToRelative(3.29f, 3.96f) + lineToRelative(7.8f, -6.19f) + lineToRelative(3.27f, 9.71f) + lineToRelative(4.45f, -1.59f) + lineToRelative(-2.98f, -9.27f) + lineToRelative(9.96f, -0.27f) + lineToRelative(-0.41f, -4.94f) + close() + } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(80.06f, 52.37f) + lineToRelative(1.02f, -3.23f) + lineToRelative(-1.65f, -0.52f) + lineToRelative(-1.03f, 3.23f) + lineToRelative(-2.7f, -2.14f) + lineToRelative(-1.02f, 1.35f) + lineToRelative(2.72f, 2.06f) + lineToRelative(-2.74f, 2.06f) + lineToRelative(1.15f, 1.38f) + lineToRelative(2.72f, -2.16f) + lineToRelative(1.14f, 3.38f) + lineToRelative(1.55f, -0.55f) + lineToRelative(-1.04f, -3.23f) + lineToRelative(3.46f, -0.09f) + lineToRelative(-0.14f, -1.72f) + close() + moveTo(148.2f, 33.79f) + lineToRelative(1.53f, -4.82f) + lineToRelative(-2.47f, -0.79f) + lineToRelative(-1.53f, 4.82f) + lineToRelative(-4.03f, -3.2f) + lineToRelative(-1.53f, 2.01f) + lineToRelative(4.06f, 3.07f) + lineToRelative(-4.1f, 3.07f) + lineToRelative(1.71f, 2.06f) + lineToRelative(4.05f, -3.22f) + lineToRelative(1.7f, 5.05f) + lineToRelative(2.31f, -0.83f) + lineToRelative(-1.55f, -4.82f) + lineToRelative(5.18f, -0.14f) + lineToRelative(-0.21f, -2.57f) + close() + } + } + }.build() + return _twoPadlocksIntertwinedStarsLight!! + } + +private var _twoPadlocksIntertwinedStarsLight: ImageVector? = null + +@Preview +@Composable +private fun Preview() { + val imageVector = AppIllus.TwoPadlocksIntertwinedStarsLight + Box { + Image( + imageVector = imageVector, + contentDescription = null, + contentScale = ContentScale.FillBounds, + modifier = Modifier + .size(AppImages.previewSize) + .aspectRatio(imageVector.viewportWidth / imageVector.viewportHeight) + ) + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt index e967b6116..85f7f50f5 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -47,10 +47,13 @@ import androidx.compose.ui.unit.dp import com.infomaniak.swisstransfer.R import com.infomaniak.swisstransfer.ui.components.SwissTransferButton import com.infomaniak.swisstransfer.ui.images.AppImages +import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus +import com.infomaniak.swisstransfer.ui.images.ThemedImage import com.infomaniak.swisstransfer.ui.images.icons.ArrowRight import com.infomaniak.swisstransfer.ui.images.illus.matomo.Matomo -import com.infomaniak.swisstransfer.ui.images.illus.uploadAd.MetallicSafe -import com.infomaniak.swisstransfer.ui.images.illus.uploadAd.SwissWithFlag +import com.infomaniak.swisstransfer.ui.images.illus.onboarding.StorageBoxPile +import com.infomaniak.swisstransfer.ui.images.illus.onboarding.ThreeCardsTransferType +import com.infomaniak.swisstransfer.ui.images.illus.onboarding.TwoPadlocksIntertwinedStars import com.infomaniak.swisstransfer.ui.theme.Dimens import com.infomaniak.swisstransfer.ui.theme.Margin import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme @@ -63,10 +66,8 @@ import kotlinx.coroutines.launch fun OnboardingScreen(goToMainActivity: () -> Unit) { val onboardingPages = listOf( OnboardingPage( - background = AppImages.AppIllus.Matomo.image(), - illustration = { - Image(AppImages.AppIllus.MetallicSafe.image(), contentDescription = null) - }, + background = AppIllus.Matomo.image(), + illustration = { Illustration(AppIllus.StorageBoxPile) }, text = { TitleAndDescription( "Salut", @@ -75,10 +76,8 @@ fun OnboardingScreen(goToMainActivity: () -> Unit) { } ), OnboardingPage( - background = AppImages.AppIllus.Matomo.image(), - illustration = { - Image(AppImages.AppIllus.SwissWithFlag.image(), contentDescription = null) - }, + background = AppIllus.Matomo.image(), + illustration = { Illustration(AppIllus.ThreeCardsTransferType) }, text = { TitleAndDescription( "Salut", @@ -87,10 +86,8 @@ fun OnboardingScreen(goToMainActivity: () -> Unit) { } ), OnboardingPage( - background = AppImages.AppIllus.Matomo.image(), - illustration = { - Image(AppImages.AppIllus.MetallicSafe.image(), contentDescription = null) - }, + background = AppIllus.Matomo.image(), + illustration = { Illustration(AppIllus.TwoPadlocksIntertwinedStars) }, text = { TitleAndDescription( "Salut", @@ -116,6 +113,11 @@ fun OnboardingScreen(goToMainActivity: () -> Unit) { ) } +@Composable +private fun Illustration(illustration: ThemedImage) { + Image(illustration.image(), contentDescription = null) +} + @Composable private fun TitleAndDescription(title: String, description: String) { Column(horizontalAlignment = Alignment.CenterHorizontally) { From ecda14b4f826e334a930f084b50f90fbe7b5b749 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Tue, 26 Nov 2024 16:40:34 +0100 Subject: [PATCH 04/44] feat: Add vertical scroll for screen that are not heigh enough --- .../swisstransfer/ui/screen/onboarding/OnboardingScreen.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt index 85f7f50f5..8df6d95eb 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -259,7 +259,9 @@ fun OnboardingPageContent(page: OnboardingPage) { ) { Image(page.background, contentDescription = null, modifier = Modifier.fillMaxSize()) Column( - modifier = Modifier.fillMaxHeight(), + modifier = Modifier + .fillMaxHeight() + .verticalScroll(rememberScrollState()), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.SpaceEvenly, ) { From fe6b38331ed47fa6c21065099ff3ed642db57797 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Tue, 26 Nov 2024 16:42:03 +0100 Subject: [PATCH 05/44] feat: Import and use strings --- .../ui/components/HighlightedText.kt | 5 ++- .../ui/screen/onboarding/OnboardingScreen.kt | 42 ++++++++++++------- app/src/main/res/values-de/strings.xml | 9 ++++ app/src/main/res/values-es/strings.xml | 9 ++++ app/src/main/res/values-fr/strings.xml | 9 ++++ app/src/main/res/values-it/strings.xml | 9 ++++ app/src/main/res/values/strings.xml | 9 ++++ 7 files changed, 76 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/components/HighlightedText.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/components/HighlightedText.kt index c24bdf4db..b9f22cc55 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/components/HighlightedText.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/components/HighlightedText.kt @@ -37,6 +37,7 @@ import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextLayoutResult import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp @@ -52,6 +53,7 @@ private const val ROTATION_ANGLE_DEGREE = -3.0 @Composable fun HighlightedText( + modifier: Modifier = Modifier, templateRes: Int, argumentRes: Int, style: TextStyle, @@ -83,8 +85,9 @@ fun HighlightedText( Text( text = text, style = style, + textAlign = TextAlign.Center, onTextLayout = { layoutResult -> boundingBoxes = layoutResult.getArgumentBoundingBoxes(text, argument) }, - modifier = Modifier.drawBehind { + modifier = modifier.drawBehind { val highlightedPath = boundingBoxes.transformForHighlightedStyle( verticalPadding, horizontalPadding, diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt index 8df6d95eb..8c91eb0c5 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -18,6 +18,7 @@ package com.infomaniak.swisstransfer.ui.screen.onboarding import androidx.activity.compose.BackHandler +import androidx.annotation.StringRes import androidx.compose.animation.core.animateDpAsState import androidx.compose.animation.core.animateFloatAsState import androidx.compose.animation.core.tween @@ -27,7 +28,9 @@ import androidx.compose.foundation.layout.* import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.PagerState import androidx.compose.foundation.pager.rememberPagerState +import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Icon import androidx.compose.material3.Scaffold import androidx.compose.material3.Surface @@ -45,6 +48,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import com.infomaniak.swisstransfer.R +import com.infomaniak.swisstransfer.ui.components.HighlightedText import com.infomaniak.swisstransfer.ui.components.SwissTransferButton import com.infomaniak.swisstransfer.ui.images.AppImages import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus @@ -70,8 +74,9 @@ fun OnboardingScreen(goToMainActivity: () -> Unit) { illustration = { Illustration(AppIllus.StorageBoxPile) }, text = { TitleAndDescription( - "Salut", - "C'est cool comme app je vous conseil de l'essayer vous verrez que c'est toute une expérience" + R.string.onboardingStorageTitle, + R.string.onboardingStorageSubtitleTemplate, + R.string.onboardingStorageSubtitleArgument, ) } ), @@ -80,8 +85,9 @@ fun OnboardingScreen(goToMainActivity: () -> Unit) { illustration = { Illustration(AppIllus.ThreeCardsTransferType) }, text = { TitleAndDescription( - "Salut", - "C'est cool comme app je vous conseil de l'essayer vous verrez que c'est toute une expérience" + R.string.onboardingExpirationTitle, + R.string.onboardingExpirationSubtitleTemplate, + R.string.onboardingExpirationSubtitleArgument, ) } ), @@ -90,8 +96,9 @@ fun OnboardingScreen(goToMainActivity: () -> Unit) { illustration = { Illustration(AppIllus.TwoPadlocksIntertwinedStars) }, text = { TitleAndDescription( - "Salut", - "C'est cool comme app je vous conseil de l'essayer vous verrez que c'est toute une expérience" + R.string.onboardingPasswordTitle, + R.string.onboardingPasswordSubtitleTemplate, + R.string.onboardingPasswordSubtitleArgument, ) } ), @@ -119,16 +126,21 @@ private fun Illustration(illustration: ThemedImage) { } @Composable -private fun TitleAndDescription(title: String, description: String) { +private fun TitleAndDescription( + @StringRes titleRes: Int, + @StringRes subtitleTemplateRes: Int, + @StringRes subtitleArgumentRes: Int, +) { Column(horizontalAlignment = Alignment.CenterHorizontally) { - Text(textAlign = TextAlign.Center, text = title, style = SwissTransferTheme.typography.h1) - Text( - modifier = Modifier - .widthIn(max = Dimens.DescriptionWidth) - .padding(Margin.Medium), - textAlign = TextAlign.Center, - text = description, - style = SwissTransferTheme.typography.specificLight22 + Text(textAlign = TextAlign.Center, text = stringResource(titleRes), style = SwissTransferTheme.typography.specificLight22) + + Spacer(modifier = Modifier.height(Margin.Mini)) + + HighlightedText( + modifier = Modifier.widthIn(max = Dimens.DescriptionWidth), + templateRes = subtitleTemplateRes, + argumentRes = subtitleArgumentRes, + style = SwissTransferTheme.typography.h1, ) } } diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 2865bd15d..bb8745ca1 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -52,6 +52,15 @@ Keine Überweisungen erhalten Wähle eine Übertragung aus oder erstelle eine neue. Keine Transfers zum Anzeigen + 30 Tage + Teile deine Dateien per E-Mail, Link oder QR-Code. Deine Links bleiben %s aktiv. + Spiel deine besten Karten aus! + einem Passwort. + Schütze deine Freigaben mit %s + Behalte die Kontrolle! + Teile bis zu 50 GB + %s Dateien – kostenlos und ohne Anmeldung. + Hau richtig rein! Empfangene Dateien Empfangen diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 279b0461c..d5889c434 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -52,6 +52,15 @@ No se han recibido transferencias Selecciona una transferencia o crea una nueva. No hay transferencias que mostrar + 30 días. + Comparte tus archivos por correo, enlace o código QR. Tus enlaces estarán activos durante %s + ¡Juega tus mejores cartas! + una contraseña. + Protege tus compartidos con %s + ¡Mantén el control! + Comparte hasta 50 GB + %s de archivos gratis y sin necesidad de registro. + ¡Envía a lo grande! Archivos recibidos Recibido diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index e20913da4..4829f9553 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -53,6 +53,15 @@ Aucun transfert reçu Sélectionne un transfert ou créé-en un nouveau. Aucun transfert à afficher + 30 jours. + Partages tes fichiers par e-mail, lien ou QR code. Tes liens restent actifs %s + Joue tes meilleures cartes ! + un mot de passe. + Protège tes partages avec %s + Garde le contrôle ! + Partage jusqu’à 50 Go + %s de fichiers gratuitement et sans inscription. + Envoie du lourd ! Fichiers reçus Reçu diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index ae8c95c47..9cf5af9f9 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -52,6 +52,15 @@ Nessun trasferimento ricevuto Selezionare un trasferimento o crearne uno nuovo. Nessun trasferimento da visualizzare + 30 giorni. + Condividi i tuoi file via email, link o QR code. I tuoi link rimangono attivi per %s + Gioca le tue carte migliori! + una password. + Proteggi i tuoi contenuti con %s + Mantieni il controllo! + Condividi fino a 50 GB + %s di file gratis e senza registrazione. + Invia alla grande! File ricevuti Ricevuto diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8acc4afdf..8319ca576 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -56,6 +56,15 @@ No transfers received Select a transfer or create a new one. No transfers to display + 30 days. + Share your files via email, link, or QR code. Your links stay active for %s + Play Your Best Cards! + a password. + Protect your shares with %s + Stay in Control! + Share up to 50 GB + %s of files for free—no sign-up needed. + Send Big! Received files Received From c576a58c4cbb80632cd990868fa9e62e56dd8a5d Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Thu, 28 Nov 2024 09:19:14 +0100 Subject: [PATCH 06/44] feat: Specify correct HighlightedText rotation angle for each onboarding screen --- .../ui/screen/onboarding/OnboardingScreen.kt | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt index 8c91eb0c5..47bed42ca 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -74,9 +74,10 @@ fun OnboardingScreen(goToMainActivity: () -> Unit) { illustration = { Illustration(AppIllus.StorageBoxPile) }, text = { TitleAndDescription( - R.string.onboardingStorageTitle, - R.string.onboardingStorageSubtitleTemplate, - R.string.onboardingStorageSubtitleArgument, + titleRes = R.string.onboardingStorageTitle, + subtitleTemplateRes = R.string.onboardingStorageSubtitleTemplate, + subtitleArgumentRes = R.string.onboardingStorageSubtitleArgument, + angleDegree = -3.0, ) } ), @@ -85,9 +86,10 @@ fun OnboardingScreen(goToMainActivity: () -> Unit) { illustration = { Illustration(AppIllus.ThreeCardsTransferType) }, text = { TitleAndDescription( - R.string.onboardingExpirationTitle, - R.string.onboardingExpirationSubtitleTemplate, - R.string.onboardingExpirationSubtitleArgument, + titleRes = R.string.onboardingExpirationTitle, + subtitleTemplateRes = R.string.onboardingExpirationSubtitleTemplate, + subtitleArgumentRes = R.string.onboardingExpirationSubtitleArgument, + angleDegree = -3.0, ) } ), @@ -96,9 +98,10 @@ fun OnboardingScreen(goToMainActivity: () -> Unit) { illustration = { Illustration(AppIllus.TwoPadlocksIntertwinedStars) }, text = { TitleAndDescription( - R.string.onboardingPasswordTitle, - R.string.onboardingPasswordSubtitleTemplate, - R.string.onboardingPasswordSubtitleArgument, + titleRes = R.string.onboardingPasswordTitle, + subtitleTemplateRes = R.string.onboardingPasswordSubtitleTemplate, + subtitleArgumentRes = R.string.onboardingPasswordSubtitleArgument, + angleDegree = 3.0, ) } ), @@ -130,6 +133,7 @@ private fun TitleAndDescription( @StringRes titleRes: Int, @StringRes subtitleTemplateRes: Int, @StringRes subtitleArgumentRes: Int, + angleDegree: Double, ) { Column(horizontalAlignment = Alignment.CenterHorizontally) { Text(textAlign = TextAlign.Center, text = stringResource(titleRes), style = SwissTransferTheme.typography.specificLight22) @@ -141,6 +145,7 @@ private fun TitleAndDescription( templateRes = subtitleTemplateRes, argumentRes = subtitleArgumentRes, style = SwissTransferTheme.typography.h1, + angleDegrees = angleDegree, ) } } From b9f8ed055adaa5723196d9a5bc46ede93c8c8e91 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Thu, 28 Nov 2024 10:10:50 +0100 Subject: [PATCH 07/44] feat: Add background radial gradient to onboarding --- .../onboarding/RadialGradientCornerTopLeft.kt | 58 +++++++++++++++ .../RadialGradientCornerTopLeftDark.kt | 69 ++++++++++++++++++ .../RadialGradientCornerTopLeftLight.kt | 71 ++++++++++++++++++ .../RadialGradientCornerTopRight.kt | 57 +++++++++++++++ .../RadialGradientCornerTopRightDark.kt | 73 +++++++++++++++++++ .../RadialGradientCornerTopRightLight.kt | 71 ++++++++++++++++++ .../ui/screen/onboarding/OnboardingScreen.kt | 34 ++++++--- 7 files changed, 422 insertions(+), 11 deletions(-) create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeft.kt create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftDark.kt create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftLight.kt create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRight.kt create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightDark.kt create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightLight.kt diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeft.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeft.kt new file mode 100644 index 000000000..e40e889ed --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeft.kt @@ -0,0 +1,58 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.infomaniak.swisstransfer.ui.images.illus.onboarding + + +import android.content.res.Configuration +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.material3.Surface +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import com.infomaniak.swisstransfer.ui.images.AppImages +import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus +import com.infomaniak.swisstransfer.ui.images.ThemedImage +import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme + +val AppIllus.RadialGradientCornerTopLeft: ThemedImage + get() = _radialGradientCornerTopLeft ?: object : ThemedImage { + override val light = AppIllus.RadialGradientCornerTopLeftLight + override val dark = AppIllus.RadialGradientCornerTopLeftDark + }.also { _radialGradientCornerTopLeft = it } + +private var _radialGradientCornerTopLeft: ThemedImage? = null + +@Preview(name = "Light") +@Preview(name = "Dark", uiMode = Configuration.UI_MODE_NIGHT_YES or Configuration.UI_MODE_TYPE_NORMAL) +@Composable +private fun Preview() { + SwissTransferTheme { + Surface { + Box { + Image( + imageVector = AppIllus.RadialGradientCornerTopLeft.image(), + contentDescription = null, + modifier = Modifier.width(AppImages.previewSize), + ) + } + } + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftDark.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftDark.kt new file mode 100644 index 000000000..ce2feaf06 --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftDark.kt @@ -0,0 +1,69 @@ +package com.infomaniak.swisstransfer.ui.images.illus.onboarding + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.foundation.layout.wrapContentSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.Brush.Companion.radialGradient +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus + +val AppIllus.RadialGradientCornerTopLeftDark: ImageVector + get() { + if (_radialGradientCornerTopLeftDark != null) { + return _radialGradientCornerTopLeftDark!! + } + _radialGradientCornerTopLeftDark = Builder( + name = "RadialGradientCornerTopLeftDark", + defaultWidth = 375.0.dp, + defaultHeight = 832.0.dp, + viewportWidth = 375.0f, + viewportHeight = 832.0f + ).apply { + path( + fill = radialGradient( + 0.0f to Color(0xFF67DD95), 1.0f to Color(0x0067DD95), center = Offset(0.0f, 0.0f), radius = 234.0f + ), + stroke = null, + fillAlpha = 0.6f, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(0.0f, 0.0f) + moveToRelative(-251.0f, 0.0f) + arcToRelative(251.0f, 251.0f, 0.0f, true, true, 502.0f, 0.0f) + arcToRelative(251.0f, 251.0f, 0.0f, true, true, -502.0f, 0.0f) + } + }.build() + return _radialGradientCornerTopLeftDark!! + } + +private var _radialGradientCornerTopLeftDark: ImageVector? = null + +@Preview +@Composable +private fun Preview() { + Box(modifier = Modifier.wrapContentHeight()) { + Image( + imageVector = AppIllus.RadialGradientCornerTopLeftDark, + contentDescription = null, + contentScale = ContentScale.FillBounds, + modifier = Modifier.wrapContentSize() + ) + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftLight.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftLight.kt new file mode 100644 index 000000000..2516e07d5 --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftLight.kt @@ -0,0 +1,71 @@ +package com.infomaniak.swisstransfer.ui.images.illus.onboarding + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.foundation.layout.wrapContentSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.Brush.Companion.radialGradient +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus + +val AppIllus.RadialGradientCornerTopLeftLight: ImageVector + get() { + if (_radialGradientCornerTopLeftLight != null) { + return _radialGradientCornerTopLeftLight!! + } + _radialGradientCornerTopLeftLight = Builder( + name = "RadialGradientCornerTopLeftLight", + defaultWidth = 375.0.dp, + defaultHeight = 832.0.dp, + viewportWidth = 375.0f, + viewportHeight = 832.0f + ).apply { + group { + path( + fill = radialGradient( + 0.45f to Color(0xFFE3F6DC), 1.0f to Color(0x00E3F6DC), center = Offset(-7.08f, 2.41f), radius = 179.03f + ), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(0.0f, 2.0f) + moveToRelative(-182.0f, 0.0f) + arcToRelative(182.0f, 182.0f, 0.0f, true, true, 364.0f, 0.0f) + arcToRelative(182.0f, 182.0f, 0.0f, true, true, -364.0f, 0.0f) + } + } + }.build() + return _radialGradientCornerTopLeftLight!! + } + +private var _radialGradientCornerTopLeftLight: ImageVector? = null + +@Preview +@Composable +private fun Preview() { + Box(modifier = Modifier.wrapContentHeight()) { + Image( + imageVector = AppIllus.RadialGradientCornerTopLeftLight, + contentDescription = null, + contentScale = ContentScale.FillBounds, + modifier = Modifier.wrapContentSize() + ) + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRight.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRight.kt new file mode 100644 index 000000000..96ced9c36 --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRight.kt @@ -0,0 +1,57 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.infomaniak.swisstransfer.ui.images.illus.onboarding + + +import android.content.res.Configuration +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.width +import androidx.compose.material3.Surface +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import com.infomaniak.swisstransfer.ui.images.AppImages +import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus +import com.infomaniak.swisstransfer.ui.images.ThemedImage +import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme + +val AppIllus.RadialGradientCornerTopRight: ThemedImage + get() = _radialGradientCornerTopRight ?: object : ThemedImage { + override val light = AppIllus.RadialGradientCornerTopRightLight + override val dark = AppIllus.RadialGradientCornerTopRightDark + }.also { _radialGradientCornerTopRight = it } + +private var _radialGradientCornerTopRight: ThemedImage? = null + +@Preview(name = "Light") +@Preview(name = "Dark", uiMode = Configuration.UI_MODE_NIGHT_YES or Configuration.UI_MODE_TYPE_NORMAL) +@Composable +private fun Preview() { + SwissTransferTheme { + Surface { + Box { + Image( + imageVector = AppIllus.RadialGradientCornerTopRight.image(), + contentDescription = null, + modifier = Modifier.width(AppImages.previewSize), + ) + } + } + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightDark.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightDark.kt new file mode 100644 index 000000000..d11466c50 --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightDark.kt @@ -0,0 +1,73 @@ +package com.infomaniak.swisstransfer.ui.images.illus.onboarding + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.foundation.layout.wrapContentSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.Brush.Companion.radialGradient +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus + +val AppIllus.RadialGradientCornerTopRightDark: ImageVector + get() { + if (_radialGradientCornerTopRightDark != null) { + return _radialGradientCornerTopRightDark!! + } + _radialGradientCornerTopRightDark = Builder( + name = "RadialGradientCornerTopRightDark", + defaultWidth = 375.0.dp, + defaultHeight = 832.0.dp, + viewportWidth = 375.0f, + viewportHeight = 832.0f + ).apply { + group { + path( + fill = radialGradient( + 0.0f to Color(0xFF67DD95), 1.0f to Color(0x0067DD95), center = Offset(375.0f, -0.0f), radius = 234.0f + ), + stroke = null, + fillAlpha = 0.6f, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(375.0f, 0.0f) + moveToRelative(-251.0f, 0.0f) + arcToRelative(251.0f, 251.0f, 0.0f, true, true, 502.0f, 0.0f) + arcToRelative(251.0f, 251.0f, 0.0f, true, true, -502.0f, 0.0f) + } + } + }.build() + return _radialGradientCornerTopRightDark!! + } + +private var _radialGradientCornerTopRightDark: ImageVector? = null + +@Preview +@Composable +private fun Preview() { + Box(modifier = Modifier.wrapContentHeight()) { + Image( + imageVector = AppIllus.RadialGradientCornerTopRightDark, + contentDescription = null, + contentScale = ContentScale.FillBounds, + modifier = Modifier.wrapContentSize() + ) + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightLight.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightLight.kt new file mode 100644 index 000000000..2fc8eb9bb --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightLight.kt @@ -0,0 +1,71 @@ +package com.infomaniak.swisstransfer.ui.images.illus.onboarding + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.foundation.layout.wrapContentSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.Brush.Companion.radialGradient +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus + +val AppIllus.RadialGradientCornerTopRightLight: ImageVector + get() { + if (_radialGradientCornerTopRightLight != null) { + return _radialGradientCornerTopRightLight!! + } + _radialGradientCornerTopRightLight = Builder( + name = "RadialGradientCornerTopRightLight", + defaultWidth = 375.0.dp, + defaultHeight = 832.0.dp, + viewportWidth = 375.0f, + viewportHeight = 832.0f + ).apply { + group { + path( + fill = radialGradient( + 0.45f to Color(0xFFE3F6DC), 1.0f to Color(0x00E3F6DC), center = Offset(363.92f, 2.41f), radius = 179.03f + ), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(371.0f, 2.0f) + moveToRelative(-182.0f, 0.0f) + arcToRelative(182.0f, 182.0f, 0.0f, true, true, 364.0f, 0.0f) + arcToRelative(182.0f, 182.0f, 0.0f, true, true, -364.0f, 0.0f) + } + } + }.build() + return _radialGradientCornerTopRightLight!! + } + +private var _radialGradientCornerTopRightLight: ImageVector? = null + +@Preview +@Composable +private fun Preview() { + Box(modifier = Modifier.wrapContentHeight()) { + Image( + imageVector = AppIllus.RadialGradientCornerTopRightLight, + contentDescription = null, + contentScale = ContentScale.FillBounds, + modifier = Modifier.wrapContentSize() + ) + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt index 47bed42ca..e3bd1e3fe 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -44,8 +44,11 @@ import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.infomaniak.swisstransfer.R import com.infomaniak.swisstransfer.ui.components.HighlightedText @@ -54,10 +57,7 @@ import com.infomaniak.swisstransfer.ui.images.AppImages import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus import com.infomaniak.swisstransfer.ui.images.ThemedImage import com.infomaniak.swisstransfer.ui.images.icons.ArrowRight -import com.infomaniak.swisstransfer.ui.images.illus.matomo.Matomo -import com.infomaniak.swisstransfer.ui.images.illus.onboarding.StorageBoxPile -import com.infomaniak.swisstransfer.ui.images.illus.onboarding.ThreeCardsTransferType -import com.infomaniak.swisstransfer.ui.images.illus.onboarding.TwoPadlocksIntertwinedStars +import com.infomaniak.swisstransfer.ui.images.illus.onboarding.* import com.infomaniak.swisstransfer.ui.theme.Dimens import com.infomaniak.swisstransfer.ui.theme.Margin import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme @@ -70,7 +70,7 @@ import kotlinx.coroutines.launch fun OnboardingScreen(goToMainActivity: () -> Unit) { val onboardingPages = listOf( OnboardingPage( - background = AppIllus.Matomo.image(), + background = AppIllus.RadialGradientCornerTopRight.image(), illustration = { Illustration(AppIllus.StorageBoxPile) }, text = { TitleAndDescription( @@ -82,7 +82,7 @@ fun OnboardingScreen(goToMainActivity: () -> Unit) { } ), OnboardingPage( - background = AppIllus.Matomo.image(), + background = AppIllus.RadialGradientCornerTopLeft.image(), illustration = { Illustration(AppIllus.ThreeCardsTransferType) }, text = { TitleAndDescription( @@ -94,7 +94,7 @@ fun OnboardingScreen(goToMainActivity: () -> Unit) { } ), OnboardingPage( - background = AppIllus.Matomo.image(), + background = AppIllus.RadialGradientCornerTopRight.image(), illustration = { Illustration(AppIllus.TwoPadlocksIntertwinedStars) }, text = { TitleAndDescription( @@ -233,9 +233,15 @@ private fun OnboardingScaffold( bottomContent: @Composable () -> Unit, ) { Scaffold { paddingValues -> - Column(modifier = Modifier.padding(paddingValues)) { + Column( + modifier = Modifier.padding( + bottom = paddingValues.calculateBottomPadding(), + start = paddingValues.calculateStartPadding(LocalLayoutDirection.current), + end = paddingValues.calculateEndPadding(LocalLayoutDirection.current), + ) + ) { HorizontalPager(pagerState, modifier = Modifier.weight(1f)) { - OnboardingPageContent(page = onboardingPages[it]) + OnboardingPageContent(page = onboardingPages[it], paddingValues.calculateTopPadding()) } HorizontalPagerIndicator(Modifier.padding(vertical = 32.dp), pagerState) @@ -269,14 +275,20 @@ fun ColumnScope.HorizontalPagerIndicator(modifier: Modifier = Modifier, pagerSta } @Composable -fun OnboardingPageContent(page: OnboardingPage) { +fun OnboardingPageContent(page: OnboardingPage, calculateTopPadding: Dp) { Box( modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center, ) { - Image(page.background, contentDescription = null, modifier = Modifier.fillMaxSize()) + Image( + page.background, + contentDescription = null, + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.FillBounds, + ) Column( modifier = Modifier + .padding(top = calculateTopPadding) .fillMaxHeight() .verticalScroll(rememberScrollState()), horizontalAlignment = Alignment.CenterHorizontally, From 4e4f2f91d40018f1400b09a86676b79c0203a5d2 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Thu, 28 Nov 2024 10:45:03 +0100 Subject: [PATCH 08/44] feat: Describe onboarding pages with an enum --- .../ui/screen/onboarding/OnboardingScreen.kt | 83 ++++++++++--------- 1 file changed, 46 insertions(+), 37 deletions(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt index e3bd1e3fe..961582c8e 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -68,44 +68,19 @@ import kotlinx.coroutines.launch @Composable fun OnboardingScreen(goToMainActivity: () -> Unit) { - val onboardingPages = listOf( - OnboardingPage( - background = AppIllus.RadialGradientCornerTopRight.image(), - illustration = { Illustration(AppIllus.StorageBoxPile) }, - text = { - TitleAndDescription( - titleRes = R.string.onboardingStorageTitle, - subtitleTemplateRes = R.string.onboardingStorageSubtitleTemplate, - subtitleArgumentRes = R.string.onboardingStorageSubtitleArgument, - angleDegree = -3.0, + val onboardingPages = buildList { + Page.entries.forEach { page -> + add( + OnboardingPage( + background = page.background.image(), + illustration = { Illustration(page.illustration) }, + text = { + TitleAndDescription(page.titleRes, page.subtitleTemplateRes, page.subtitleArgumentRes, page.angleDegree) + } ) - } - ), - OnboardingPage( - background = AppIllus.RadialGradientCornerTopLeft.image(), - illustration = { Illustration(AppIllus.ThreeCardsTransferType) }, - text = { - TitleAndDescription( - titleRes = R.string.onboardingExpirationTitle, - subtitleTemplateRes = R.string.onboardingExpirationSubtitleTemplate, - subtitleArgumentRes = R.string.onboardingExpirationSubtitleArgument, - angleDegree = -3.0, - ) - } - ), - OnboardingPage( - background = AppIllus.RadialGradientCornerTopRight.image(), - illustration = { Illustration(AppIllus.TwoPadlocksIntertwinedStars) }, - text = { - TitleAndDescription( - titleRes = R.string.onboardingPasswordTitle, - subtitleTemplateRes = R.string.onboardingPasswordSubtitleTemplate, - subtitleArgumentRes = R.string.onboardingPasswordSubtitleArgument, - angleDegree = 3.0, - ) - } - ), - ) + ) + } + } val pagerState = rememberPagerState(pageCount = { onboardingPages.size }) val coroutineScope = rememberCoroutineScope() @@ -308,6 +283,40 @@ data class OnboardingPage( val text: @Composable () -> Unit, ) +private enum class Page( + val background: ThemedImage, + val illustration: ThemedImage, + @StringRes val titleRes: Int, + @StringRes val subtitleTemplateRes: Int, + @StringRes val subtitleArgumentRes: Int, + val angleDegree: Double, +) { + STORAGE( + background = AppIllus.RadialGradientCornerTopRight, + illustration = AppIllus.StorageBoxPile, + titleRes = R.string.onboardingStorageTitle, + subtitleTemplateRes = R.string.onboardingStorageSubtitleTemplate, + subtitleArgumentRes = R.string.onboardingStorageSubtitleArgument, + angleDegree = -3.0, + ), + EXPIRATION( + background = AppIllus.RadialGradientCornerTopLeft, + illustration = AppIllus.ThreeCardsTransferType, + titleRes = R.string.onboardingExpirationTitle, + subtitleTemplateRes = R.string.onboardingExpirationSubtitleTemplate, + subtitleArgumentRes = R.string.onboardingExpirationSubtitleArgument, + angleDegree = -3.0, + ), + PASSWORD( + background = AppIllus.RadialGradientCornerTopRight, + illustration = AppIllus.TwoPadlocksIntertwinedStars, + titleRes = R.string.onboardingPasswordTitle, + subtitleTemplateRes = R.string.onboardingPasswordSubtitleTemplate, + subtitleArgumentRes = R.string.onboardingPasswordSubtitleArgument, + angleDegree = 3.0, + ), +} + @PreviewSmallWindow @PreviewLargeWindow @Composable From bd1bdb589e1de91386f8eb668f44cce515063f1f Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Thu, 28 Nov 2024 10:58:23 +0100 Subject: [PATCH 09/44] feat: Give control over the HighlightedText highlight state --- .../ui/components/HighlightedText.kt | 54 +++++++++++++++++-- 1 file changed, 50 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/components/HighlightedText.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/components/HighlightedText.kt index b9f22cc55..52f63d211 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/components/HighlightedText.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/components/HighlightedText.kt @@ -60,6 +60,55 @@ fun HighlightedText( verticalPadding: Float = VERTICAL_PADDING, horizontalPadding: Float = HORIZONTAL_PADDING, angleDegrees: Double = ROTATION_ANGLE_DEGREE, + isHighlighted: () -> Boolean, +) { + HighlightedTextCore( + templateRes, + argumentRes, + style, + modifier, + verticalPadding, + horizontalPadding, + angleDegrees, + isHighlighted, + ) +} + +@Composable +fun HighlightedText( + modifier: Modifier = Modifier, + templateRes: Int, + argumentRes: Int, + style: TextStyle, + verticalPadding: Float = VERTICAL_PADDING, + horizontalPadding: Float = HORIZONTAL_PADDING, + angleDegrees: Double = ROTATION_ANGLE_DEGREE, +) { + var isHighlighted by rememberSaveable { mutableStateOf(false) } + LaunchedEffect(Unit) { isHighlighted = true } + + HighlightedTextCore( + templateRes, + argumentRes, + style, + modifier, + verticalPadding, + horizontalPadding, + angleDegrees, + { isHighlighted }, + ) +} + +@Composable +private fun HighlightedTextCore( + templateRes: Int, + argumentRes: Int, + style: TextStyle, + modifier: Modifier, + verticalPadding: Float, + horizontalPadding: Float, + angleDegrees: Double, + isHighlighted: () -> Boolean ) { val template = stringResource(templateRes) val argument = stringResource(argumentRes) @@ -68,12 +117,9 @@ fun HighlightedText( val highlightedColor = SwissTransferTheme.colors.highlightedColor var boundingBoxes by remember { mutableStateOf>(emptyList()) } - var animationStarted by rememberSaveable { mutableStateOf(false) } - - LaunchedEffect(Unit) { animationStarted = true } val highlightProgress by animateFloatAsState( - targetValue = if (animationStarted) 1f else 0f, + targetValue = if (isHighlighted()) 1f else 0f, animationSpec = tween( durationMillis = 600, easing = FastOutSlowInEasing, From 3856830ebe73d8e70311936b49ce97075e8c8209 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Thu, 28 Nov 2024 11:18:25 +0100 Subject: [PATCH 10/44] feat: Manually trigger the animation of onboarding highlighted texts --- .../ui/screen/onboarding/OnboardingScreen.kt | 44 ++++++++++++------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt index 961582c8e..7eb3ca07b 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -35,9 +35,8 @@ import androidx.compose.material3.Icon import androidx.compose.material3.Scaffold import androidx.compose.material3.Surface import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.* +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha @@ -68,6 +67,18 @@ import kotlinx.coroutines.launch @Composable fun OnboardingScreen(goToMainActivity: () -> Unit) { + val pagerState = rememberPagerState(pageCount = { Page.entries.size }) + val coroutineScope = rememberCoroutineScope() + + val isHighlighted = Page.entries.associateWith { rememberSaveable { mutableStateOf(false) } } + + // Start the highlighting of the text when the associated page is reached in the HorizontalPager + LaunchedEffect(pagerState.currentPage) { + val currentPage = Page.entries[pagerState.currentPage] + val setIsHighlighted = isHighlighted[currentPage]?.component2() + setIsHighlighted?.invoke(true) + } + val onboardingPages = buildList { Page.entries.forEach { page -> add( @@ -75,16 +86,16 @@ fun OnboardingScreen(goToMainActivity: () -> Unit) { background = page.background.image(), illustration = { Illustration(page.illustration) }, text = { - TitleAndDescription(page.titleRes, page.subtitleTemplateRes, page.subtitleArgumentRes, page.angleDegree) + TitleAndDescription( + page, + isHighlighted = { isHighlighted[page]?.value ?: false } + ) } ) ) } } - val pagerState = rememberPagerState(pageCount = { onboardingPages.size }) - val coroutineScope = rememberCoroutineScope() - BackHandler(pagerState.currentPage > 0) { coroutineScope.launch(Dispatchers.IO) { pagerState.animateScrollToPage(pagerState.currentPage - 1) @@ -105,22 +116,25 @@ private fun Illustration(illustration: ThemedImage) { @Composable private fun TitleAndDescription( - @StringRes titleRes: Int, - @StringRes subtitleTemplateRes: Int, - @StringRes subtitleArgumentRes: Int, - angleDegree: Double, + page: Page, + isHighlighted: () -> Boolean, ) { Column(horizontalAlignment = Alignment.CenterHorizontally) { - Text(textAlign = TextAlign.Center, text = stringResource(titleRes), style = SwissTransferTheme.typography.specificLight22) + Text( + textAlign = TextAlign.Center, + text = stringResource(page.titleRes), + style = SwissTransferTheme.typography.specificLight22, + ) Spacer(modifier = Modifier.height(Margin.Mini)) HighlightedText( modifier = Modifier.widthIn(max = Dimens.DescriptionWidth), - templateRes = subtitleTemplateRes, - argumentRes = subtitleArgumentRes, + templateRes = page.subtitleTemplateRes, + argumentRes = page.subtitleArgumentRes, style = SwissTransferTheme.typography.h1, - angleDegrees = angleDegree, + angleDegrees = page.angleDegree, + isHighlighted = isHighlighted, ) } } From eeeab3e542a59cfc4d26dd500ed6f4eadae02526 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Thu, 28 Nov 2024 11:27:19 +0100 Subject: [PATCH 11/44] refactor: Extract OnboardingScaffold to their own files --- .../onboarding/HorizontalPagerIndicator.kt | 52 ++++++++++ .../screen/onboarding/OnboardingScaffold.kt | 93 ++++++++++++++++++ .../ui/screen/onboarding/OnboardingScreen.kt | 94 ------------------- 3 files changed, 145 insertions(+), 94 deletions(-) create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/HorizontalPagerIndicator.kt create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScaffold.kt diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/HorizontalPagerIndicator.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/HorizontalPagerIndicator.kt new file mode 100644 index 000000000..51abe82a9 --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/HorizontalPagerIndicator.kt @@ -0,0 +1,52 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.infomaniak.swisstransfer.ui.screen.onboarding + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.pager.PagerState +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp + +@Composable +fun ColumnScope.HorizontalPagerIndicator(modifier: Modifier = Modifier, pagerState: PagerState) { + Row( + modifier + .wrapContentHeight() + .fillMaxWidth() + .align(Alignment.CenterHorizontally) + .padding(bottom = 8.dp), + horizontalArrangement = Arrangement.Center + ) { + repeat(pagerState.pageCount) { iteration -> + val color = if (pagerState.currentPage == iteration) Color.DarkGray else Color.LightGray + Box( + modifier = Modifier + .padding(2.dp) + .clip(CircleShape) + .background(color) + .size(16.dp) + ) + } + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScaffold.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScaffold.kt new file mode 100644 index 000000000..141431542 --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScaffold.kt @@ -0,0 +1,93 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.infomaniak.swisstransfer.ui.screen.onboarding + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.pager.HorizontalPager +import androidx.compose.foundation.pager.PagerState +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Scaffold +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalLayoutDirection +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp + +@Composable +fun OnboardingScaffold( + pagerState: PagerState, + onboardingPages: List, + bottomContent: @Composable () -> Unit, +) { + Scaffold { paddingValues -> + Column( + modifier = Modifier.padding( + bottom = paddingValues.calculateBottomPadding(), + start = paddingValues.calculateStartPadding(LocalLayoutDirection.current), + end = paddingValues.calculateEndPadding(LocalLayoutDirection.current), + ) + ) { + HorizontalPager(pagerState, modifier = Modifier.weight(1f)) { + OnboardingPageContent(page = onboardingPages[it], paddingValues.calculateTopPadding()) + } + + HorizontalPagerIndicator(Modifier.padding(vertical = 32.dp), pagerState) + + bottomContent() + } + } +} + +@Composable +private fun OnboardingPageContent(page: OnboardingPage, calculateTopPadding: Dp) { + Box( + modifier = Modifier.fillMaxSize(), + contentAlignment = Alignment.Center, + ) { + Image( + page.background, + contentDescription = null, + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.FillBounds, + ) + Column( + modifier = Modifier + .padding(top = calculateTopPadding) + .fillMaxHeight() + .verticalScroll(rememberScrollState()), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.SpaceEvenly, + ) { + with(page) { + illustration() + text() + } + } + } +} + +data class OnboardingPage( + val background: ImageVector, + val illustration: @Composable () -> Unit, + val text: @Composable () -> Unit, +) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt index 7eb3ca07b..3df201f28 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -23,16 +23,10 @@ import androidx.compose.animation.core.animateDpAsState import androidx.compose.animation.core.animateFloatAsState import androidx.compose.animation.core.tween import androidx.compose.foundation.Image -import androidx.compose.foundation.background import androidx.compose.foundation.layout.* -import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.PagerState import androidx.compose.foundation.pager.rememberPagerState -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.shape.CircleShape -import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Icon -import androidx.compose.material3.Scaffold import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.* @@ -40,14 +34,8 @@ import androidx.compose.runtime.saveable.rememberSaveable 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.graphics.Color -import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.layout.ContentScale -import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.infomaniak.swisstransfer.R import com.infomaniak.swisstransfer.ui.components.HighlightedText @@ -215,88 +203,6 @@ private fun BottomContent( } } -@Composable -private fun OnboardingScaffold( - pagerState: PagerState, - onboardingPages: List, - bottomContent: @Composable () -> Unit, -) { - Scaffold { paddingValues -> - Column( - modifier = Modifier.padding( - bottom = paddingValues.calculateBottomPadding(), - start = paddingValues.calculateStartPadding(LocalLayoutDirection.current), - end = paddingValues.calculateEndPadding(LocalLayoutDirection.current), - ) - ) { - HorizontalPager(pagerState, modifier = Modifier.weight(1f)) { - OnboardingPageContent(page = onboardingPages[it], paddingValues.calculateTopPadding()) - } - - HorizontalPagerIndicator(Modifier.padding(vertical = 32.dp), pagerState) - - bottomContent() - } - } -} - -@Composable -fun ColumnScope.HorizontalPagerIndicator(modifier: Modifier = Modifier, pagerState: PagerState) { - Row( - modifier - .wrapContentHeight() - .fillMaxWidth() - .align(Alignment.CenterHorizontally) - .padding(bottom = 8.dp), - horizontalArrangement = Arrangement.Center - ) { - repeat(pagerState.pageCount) { iteration -> - val color = if (pagerState.currentPage == iteration) Color.DarkGray else Color.LightGray - Box( - modifier = Modifier - .padding(2.dp) - .clip(CircleShape) - .background(color) - .size(16.dp) - ) - } - } -} - -@Composable -fun OnboardingPageContent(page: OnboardingPage, calculateTopPadding: Dp) { - Box( - modifier = Modifier.fillMaxSize(), - contentAlignment = Alignment.Center, - ) { - Image( - page.background, - contentDescription = null, - modifier = Modifier.fillMaxSize(), - contentScale = ContentScale.FillBounds, - ) - Column( - modifier = Modifier - .padding(top = calculateTopPadding) - .fillMaxHeight() - .verticalScroll(rememberScrollState()), - horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.SpaceEvenly, - ) { - with(page) { - illustration() - text() - } - } - } -} - -data class OnboardingPage( - val background: ImageVector, - val illustration: @Composable () -> Unit, - val text: @Composable () -> Unit, -) - private enum class Page( val background: ThemedImage, val illustration: ThemedImage, From 3a51f257e5e6b790333d3bbff8ff552b0624941b Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Thu, 28 Nov 2024 14:47:15 +0100 Subject: [PATCH 12/44] feat: Extract OnboardingScaffold to Core2 --- Core2/Onboarding/build.gradle.kts | 49 +++++++++++++++++++ Core2/Onboarding/consumer-rules.pro | 0 Core2/Onboarding/proguard-rules.pro | 21 ++++++++ .../onboarding/HorizontalPagerIndicator.kt | 3 +- .../library}/onboarding/OnboardingScaffold.kt | 2 +- Core2/gradle/core2.versions.toml | 12 ++++- app/build.gradle.kts | 1 + .../ui/screen/onboarding/OnboardingScreen.kt | 2 + settings.gradle.kts | 1 + 9 files changed, 87 insertions(+), 4 deletions(-) create mode 100644 Core2/Onboarding/build.gradle.kts create mode 100644 Core2/Onboarding/consumer-rules.pro create mode 100644 Core2/Onboarding/proguard-rules.pro rename {app/src/main/java/com/infomaniak/swisstransfer/ui/screen => Core2/Onboarding/src/main/java/com/infomaniak/library}/onboarding/HorizontalPagerIndicator.kt (95%) rename {app/src/main/java/com/infomaniak/swisstransfer/ui/screen => Core2/Onboarding/src/main/java/com/infomaniak/library}/onboarding/OnboardingScaffold.kt (98%) diff --git a/Core2/Onboarding/build.gradle.kts b/Core2/Onboarding/build.gradle.kts new file mode 100644 index 000000000..a4faed6d4 --- /dev/null +++ b/Core2/Onboarding/build.gradle.kts @@ -0,0 +1,49 @@ +plugins { + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.compose.compiler) +} + +val sharedCompileSdk: Int by rootProject.extra +val sharedMinSdk: Int by rootProject.extra +val sharedJavaVersion: JavaVersion by rootProject.extra + +android { + namespace = "com.infomaniak.library.onboarding" + compileSdk = sharedCompileSdk + + defaultConfig { + minSdk = sharedMinSdk + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles("consumer-rules.pro") + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") + } + } + compileOptions { + sourceCompatibility = sharedJavaVersion + targetCompatibility = sharedJavaVersion + } + buildFeatures { + compose = true + } + composeOptions { + kotlinCompilerExtensionVersion = "1.5.14" + } + kotlinOptions { + jvmTarget = sharedJavaVersion.toString() + } +} + +dependencies { + + implementation(core2.androidx.core.ktx) + implementation(core2.androidx.material3.android) + implementation(core2.androidx.runtime.android) + implementation(core2.androidx.foundation.android) +} diff --git a/Core2/Onboarding/consumer-rules.pro b/Core2/Onboarding/consumer-rules.pro new file mode 100644 index 000000000..e69de29bb diff --git a/Core2/Onboarding/proguard-rules.pro b/Core2/Onboarding/proguard-rules.pro new file mode 100644 index 000000000..481bb4348 --- /dev/null +++ b/Core2/Onboarding/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/HorizontalPagerIndicator.kt b/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/HorizontalPagerIndicator.kt similarity index 95% rename from app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/HorizontalPagerIndicator.kt rename to Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/HorizontalPagerIndicator.kt index 51abe82a9..6e86fa6c3 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/HorizontalPagerIndicator.kt +++ b/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/HorizontalPagerIndicator.kt @@ -15,10 +15,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.infomaniak.swisstransfer.ui.screen.onboarding +package com.infomaniak.library.onboarding import androidx.compose.foundation.background import androidx.compose.foundation.layout.* +import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.pager.PagerState import androidx.compose.foundation.shape.CircleShape import androidx.compose.runtime.Composable diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScaffold.kt b/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt similarity index 98% rename from app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScaffold.kt rename to Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt index 141431542..3799c0671 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScaffold.kt +++ b/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.infomaniak.swisstransfer.ui.screen.onboarding +package com.infomaniak.library.onboarding import androidx.compose.foundation.Image import androidx.compose.foundation.layout.* diff --git a/Core2/gradle/core2.versions.toml b/Core2/gradle/core2.versions.toml index 1738542a1..9473a86f4 100644 --- a/Core2/gradle/core2.versions.toml +++ b/Core2/gradle/core2.versions.toml @@ -1,7 +1,15 @@ [versions] -sentry-android = "7.15.0" +coreKtx = "1.15.0" +foundationAndroid = "1.7.3" +runtimeAndroid = "1.7.5" +material3Android = "1.3.1" matomo = "4.1.4" +sentry-android = "7.15.0" [libraries] -sentry-android = { module = "io.sentry:sentry-android", version.ref = "sentry-android" } +androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } +androidx-foundation-android = { group = "androidx.compose.foundation", name = "foundation-android", version.ref = "foundationAndroid" } +androidx-runtime-android = { group = "androidx.compose.runtime", name = "runtime-android", version.ref = "runtimeAndroid" } +androidx-material3-android = { group = "androidx.compose.material3", name = "material3-android", version.ref = "material3Android" } matomo = { module = "com.github.matomo-org:matomo-sdk-android", version.ref = "matomo" } +sentry-android = { module = "io.sentry:sentry-android", version.ref = "sentry-android" } diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d185bafe8..537622206 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -87,6 +87,7 @@ dependencies { implementation(project(":Core2:Sentry")) implementation(project(":Core2:Matomo")) implementation(project(":Core2:Network")) + implementation(project(":Core2:Onboarding")) implementation(project(":FileTypes")) implementation(kotlin("reflect")) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt index 3df201f28..3de374a40 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -37,6 +37,8 @@ import androidx.compose.ui.draw.alpha import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp +import com.infomaniak.library.onboarding.OnboardingPage +import com.infomaniak.library.onboarding.OnboardingScaffold import com.infomaniak.swisstransfer.R import com.infomaniak.swisstransfer.ui.components.HighlightedText import com.infomaniak.swisstransfer.ui.components.SwissTransferButton diff --git a/settings.gradle.kts b/settings.gradle.kts index 5e9ac91e7..4f70b7865 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -33,4 +33,5 @@ include(":Core2") include(":Core2:Sentry") include(":Core2:Matomo") include(":Core2:Network") +include(":Core2:Onboarding") include(":FileTypes") From eaa277cc8e20b8382bf4f7831be797bf5fea70e7 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Thu, 28 Nov 2024 15:12:12 +0100 Subject: [PATCH 13/44] refactor: Clean OnboardingScreen and extract some components --- .../ui/screen/onboarding/OnboardingScreen.kt | 133 +++++------------- .../components/AnimatedOnboardingButton.kt | 110 +++++++++++++++ 2 files changed, 144 insertions(+), 99 deletions(-) create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/components/AnimatedOnboardingButton.kt diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt index 3de374a40..beee36a2a 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -19,21 +19,15 @@ package com.infomaniak.swisstransfer.ui.screen.onboarding import androidx.activity.compose.BackHandler import androidx.annotation.StringRes -import androidx.compose.animation.core.animateDpAsState -import androidx.compose.animation.core.animateFloatAsState -import androidx.compose.animation.core.tween import androidx.compose.foundation.Image import androidx.compose.foundation.layout.* -import androidx.compose.foundation.pager.PagerState import androidx.compose.foundation.pager.rememberPagerState -import androidx.compose.material3.Icon import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.* import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.alpha import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp @@ -41,23 +35,21 @@ import com.infomaniak.library.onboarding.OnboardingPage import com.infomaniak.library.onboarding.OnboardingScaffold import com.infomaniak.swisstransfer.R import com.infomaniak.swisstransfer.ui.components.HighlightedText -import com.infomaniak.swisstransfer.ui.components.SwissTransferButton -import com.infomaniak.swisstransfer.ui.images.AppImages import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus import com.infomaniak.swisstransfer.ui.images.ThemedImage -import com.infomaniak.swisstransfer.ui.images.icons.ArrowRight import com.infomaniak.swisstransfer.ui.images.illus.onboarding.* +import com.infomaniak.swisstransfer.ui.screen.onboarding.components.AnimatedOnboardingButton import com.infomaniak.swisstransfer.ui.theme.Dimens import com.infomaniak.swisstransfer.ui.theme.Margin import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme import com.infomaniak.swisstransfer.ui.utils.PreviewLargeWindow import com.infomaniak.swisstransfer.ui.utils.PreviewSmallWindow -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @Composable fun OnboardingScreen(goToMainActivity: () -> Unit) { val pagerState = rememberPagerState(pageCount = { Page.entries.size }) + val isLastPage by remember { derivedStateOf { pagerState.currentPage >= pagerState.pageCount - 1 } } val coroutineScope = rememberCoroutineScope() val isHighlighted = Page.entries.associateWith { rememberSaveable { mutableStateOf(false) } } @@ -69,46 +61,50 @@ fun OnboardingScreen(goToMainActivity: () -> Unit) { setIsHighlighted?.invoke(true) } - val onboardingPages = buildList { - Page.entries.forEach { page -> - add( - OnboardingPage( - background = page.background.image(), - illustration = { Illustration(page.illustration) }, - text = { - TitleAndDescription( - page, - isHighlighted = { isHighlighted[page]?.value ?: false } - ) - } - ) - ) + BackHandler(pagerState.currentPage > 0) { + coroutineScope.launch { + pagerState.animateScrollToPage(pagerState.currentPage - 1) } } - BackHandler(pagerState.currentPage > 0) { - coroutineScope.launch(Dispatchers.IO) { - pagerState.animateScrollToPage(pagerState.currentPage - 1) + val onboardingPages = buildList { + Page.entries.forEach { page -> + add(page.toOnboardingPage(isHighlighted)) } } OnboardingScaffold( pagerState = pagerState, onboardingPages = onboardingPages, - bottomContent = { BottomContent(pagerState, onboardingPages.size, goToMainActivity) }, + bottomContent = { + BottomContent( + isLastPage = { isLastPage }, + startMainActivity = goToMainActivity, + goToNextPage = { coroutineScope.launch { pagerState.animateScrollToPage(pagerState.currentPage + 1) } }, + ) + }, ) } +@Composable +private fun Page.toOnboardingPage(isHighlighted: Map>) = OnboardingPage( + background = background.image(), + illustration = { Illustration(illustration) }, + text = { + TitleAndDescription( + page = this, + isHighlighted = { isHighlighted[this]?.value ?: false } + ) + } +) + @Composable private fun Illustration(illustration: ThemedImage) { Image(illustration.image(), contentDescription = null) } @Composable -private fun TitleAndDescription( - page: Page, - isHighlighted: () -> Boolean, -) { +private fun TitleAndDescription(page: Page, isHighlighted: () -> Boolean) { Column(horizontalAlignment = Alignment.CenterHorizontally) { Text( textAlign = TextAlign.Center, @@ -129,79 +125,18 @@ private fun TitleAndDescription( } } -private const val BUTTON_ANIM_DURATION = 300 -private const val BUTTON_ANIM_DELAY = BUTTON_ANIM_DURATION / 2 -private const val BUTTON_ANIM_NO_DELAY = 0 -private val FAB_SIZE = 64.dp - @Composable -private fun BottomContent( - pagerState: PagerState, - pageCount: Int, - startMainActivity: () -> Unit, -) { - val coroutineScope = rememberCoroutineScope() - val isLastPage = pagerState.currentPage >= pageCount - 1 - - val buttonWidth by animateDpAsState( - targetValue = if (isLastPage) Dimens.SingleButtonMaxWidth else FAB_SIZE, - animationSpec = tween(durationMillis = BUTTON_ANIM_DELAY), - label = "Onboarding button width", - ) - - val buttonHeight by animateDpAsState( - targetValue = if (isLastPage) Dimens.LargeButtonHeight else FAB_SIZE, - animationSpec = tween(durationMillis = BUTTON_ANIM_DELAY), - label = "Onboarding button height", - ) - - val arrowDelay = if (isLastPage) BUTTON_ANIM_NO_DELAY else BUTTON_ANIM_DELAY - val arrowVisibility by animateFloatAsState( - targetValue = if (isLastPage) 0f else 1f, - animationSpec = tween(durationMillis = BUTTON_ANIM_DELAY, delayMillis = arrowDelay), - label = "Onboarding arrow visibility", - ) - - val textDelay = if (isLastPage) BUTTON_ANIM_DELAY else BUTTON_ANIM_NO_DELAY - val textVisibility by animateFloatAsState( - targetValue = if (isLastPage) 1f else 0f, - animationSpec = tween(durationMillis = BUTTON_ANIM_DELAY, delayMillis = textDelay), - label = "Onboarding text visibility", - ) - +private fun BottomContent(isLastPage: () -> Boolean, startMainActivity: () -> Unit, goToNextPage: () -> Unit) { Box( contentAlignment = Alignment.Center, modifier = Modifier .fillMaxWidth() - .height(136.dp), + .height(140.dp), ) { - SwissTransferButton( - modifier = Modifier - .height(buttonHeight) - .padding(horizontal = Margin.Medium) - .width(buttonWidth), - onClick = { - if (isLastPage) { - startMainActivity() - } else { - coroutineScope.launch(Dispatchers.IO) { pagerState.animateScrollToPage(pagerState.currentPage + 1) } - } - }, - contentPadding = PaddingValues(), - ) { - Box(contentAlignment = Alignment.Center) { - Icon( - modifier = Modifier.alpha(arrowVisibility), - imageVector = AppImages.AppIcons.ArrowRight, - contentDescription = null - ) - Text( - modifier = Modifier.alpha(textVisibility), - text = stringResource(id = R.string.appName), - style = SwissTransferTheme.typography.bodyMedium - ) - } - } + AnimatedOnboardingButton( + isExpanded = { isLastPage() }, + onClick = { if (isLastPage()) startMainActivity() else goToNextPage() }, + ) } } diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/components/AnimatedOnboardingButton.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/components/AnimatedOnboardingButton.kt new file mode 100644 index 000000000..00706ffb5 --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/components/AnimatedOnboardingButton.kt @@ -0,0 +1,110 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.infomaniak.swisstransfer.ui.screen.onboarding.components + +import androidx.compose.animation.core.animateDpAsState +import androidx.compose.animation.core.animateFloatAsState +import androidx.compose.animation.core.tween +import androidx.compose.foundation.layout.* +import androidx.compose.material3.Icon +import androidx.compose.material3.Text +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.alpha +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import com.infomaniak.swisstransfer.R +import com.infomaniak.swisstransfer.ui.components.SwissTransferButton +import com.infomaniak.swisstransfer.ui.images.AppImages +import com.infomaniak.swisstransfer.ui.images.icons.ArrowRight +import com.infomaniak.swisstransfer.ui.theme.Dimens +import com.infomaniak.swisstransfer.ui.theme.Margin +import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme +import com.infomaniak.swisstransfer.ui.utils.PreviewLightAndDark + +private const val BUTTON_ANIM_DURATION = 300 +private const val BUTTON_ANIM_DELAY = BUTTON_ANIM_DURATION / 2 +private const val BUTTON_ANIM_NO_DELAY = 0 +private val FAB_SIZE = 64.dp + +@Composable +fun AnimatedOnboardingButton(isExpanded: () -> Boolean, onClick: () -> Unit) { + val buttonWidth by animateDpAsState( + targetValue = if (isExpanded()) Dimens.SingleButtonMaxWidth else FAB_SIZE, + animationSpec = tween(durationMillis = BUTTON_ANIM_DELAY), + label = "Onboarding button width", + ) + + val buttonHeight by animateDpAsState( + targetValue = if (isExpanded()) Dimens.LargeButtonHeight else FAB_SIZE, + animationSpec = tween(durationMillis = BUTTON_ANIM_DELAY), + label = "Onboarding button height", + ) + + val arrowDelay = if (isExpanded()) BUTTON_ANIM_NO_DELAY else BUTTON_ANIM_DELAY + val arrowVisibility by animateFloatAsState( + targetValue = if (isExpanded()) 0f else 1f, + animationSpec = tween(durationMillis = BUTTON_ANIM_DELAY, delayMillis = arrowDelay), + label = "Onboarding arrow visibility", + ) + + val textDelay = if (isExpanded()) BUTTON_ANIM_DELAY else BUTTON_ANIM_NO_DELAY + val textVisibility by animateFloatAsState( + targetValue = if (isExpanded()) 1f else 0f, + animationSpec = tween(durationMillis = BUTTON_ANIM_DELAY, delayMillis = textDelay), + label = "Onboarding text visibility", + ) + + SwissTransferButton( + modifier = Modifier + .height(buttonHeight) + .padding(horizontal = Margin.Medium) + .width(buttonWidth), + onClick = onClick, + contentPadding = PaddingValues(), + ) { + Box(contentAlignment = Alignment.Center) { + Icon( + modifier = Modifier.alpha(arrowVisibility), + imageVector = AppImages.AppIcons.ArrowRight, + contentDescription = null + ) + Text( + modifier = Modifier.alpha(textVisibility), + text = stringResource(id = R.string.appName), + style = SwissTransferTheme.typography.bodyMedium + ) + } + } +} + +@PreviewLightAndDark +@Composable +private fun Preview() { + SwissTransferTheme { + Box(modifier = Modifier.size(width = 400.dp, height = 70.dp), contentAlignment = Alignment.Center) { + var currentPage by remember { mutableStateOf(false) } + + AnimatedOnboardingButton( + isExpanded = { currentPage }, + onClick = { currentPage = !currentPage }, + ) + } + } +} From 03d4df2aafa1bd2fdd64a6464dc4aa75bb0977fd Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Thu, 28 Nov 2024 16:06:03 +0100 Subject: [PATCH 14/44] feat: Add missing start button string --- .../ui/screen/onboarding/components/AnimatedOnboardingButton.kt | 2 +- app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-es/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 6 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/components/AnimatedOnboardingButton.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/components/AnimatedOnboardingButton.kt index 00706ffb5..61fd12280 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/components/AnimatedOnboardingButton.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/components/AnimatedOnboardingButton.kt @@ -87,7 +87,7 @@ fun AnimatedOnboardingButton(isExpanded: () -> Boolean, onClick: () -> Unit) { ) Text( modifier = Modifier.alpha(textVisibility), - text = stringResource(id = R.string.appName), + text = stringResource(id = R.string.buttonStart), style = SwissTransferTheme.typography.bodyMedium ) } diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index bb8745ca1..fff0ce04f 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -25,6 +25,7 @@ Beenden Weiter zu Teilen + Starten Zurück Schliessen Passwort verbergen diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index d5889c434..f9a087ccc 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -25,6 +25,7 @@ Acabado Siguiente Compartir + Inicio Volver Cerrar Ocultar contraseña diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 4829f9553..aa413df58 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -25,6 +25,7 @@ Terminer Suivant Partager + Démarrer Retour Fermer Cacher le mot de passe diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 9cf5af9f9..335ae8cc0 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -25,6 +25,7 @@ Finisci Avanti Condividi + Inizio Indietro Chiudi Nascondere la password diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8319ca576..f5333ee47 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -29,6 +29,7 @@ Finish Next Share + Start Back Close Hide password From 836d0b4d0495df6539ea729b7e0c89cf65ad3781 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Fri, 29 Nov 2024 09:13:46 +0100 Subject: [PATCH 15/44] feat: Add OnboardingScaffold preview --- Core2/Onboarding/build.gradle.kts | 2 + .../library/onboarding/OnboardingScaffold.kt | 48 +++++++++++++++++++ Core2/gradle/core2.versions.toml | 4 ++ 3 files changed, 54 insertions(+) diff --git a/Core2/Onboarding/build.gradle.kts b/Core2/Onboarding/build.gradle.kts index a4faed6d4..97add85b1 100644 --- a/Core2/Onboarding/build.gradle.kts +++ b/Core2/Onboarding/build.gradle.kts @@ -46,4 +46,6 @@ dependencies { implementation(core2.androidx.material3.android) implementation(core2.androidx.runtime.android) implementation(core2.androidx.foundation.android) + implementation(core2.androidx.ui.tooling.preview.android) + debugImplementation(core2.androidx.ui.tooling) } diff --git a/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt b/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt index 3799c0671..7062a2b22 100644 --- a/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt +++ b/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt @@ -18,18 +18,24 @@ package com.infomaniak.library.onboarding import androidx.compose.foundation.Image +import androidx.compose.foundation.background import androidx.compose.foundation.layout.* import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.PagerState +import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text 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.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalLayoutDirection +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp @@ -91,3 +97,45 @@ data class OnboardingPage( val illustration: @Composable () -> Unit, val text: @Composable () -> Unit, ) + + +@Preview +@Preview(device = "spec:parent=pixel_5,orientation=landscape") +@Composable +private fun Preview() { + val imageVector = Builder( + defaultWidth = 24.0.dp, + defaultHeight = 24.0.dp, + viewportWidth = 24.0f, + viewportHeight = 24.0f, + ).build() + + val a = OnboardingPage( + background = imageVector, + illustration = { + Box( + modifier = Modifier + .size(200.dp) + .background(Color.LightGray) + ) { + Text("Illustration") + } + }, + text = { Text("Long description text of the onboarding page") } + ) + + OnboardingScaffold( + pagerState = rememberPagerState { 3 }, + onboardingPages = listOf(a, a, a), + bottomContent = { + Box( + modifier = Modifier + .height(100.dp) + .fillMaxWidth() + .background(Color.LightGray) + ) { + Text("Bottom content") + } + } + ) +} diff --git a/Core2/gradle/core2.versions.toml b/Core2/gradle/core2.versions.toml index 9473a86f4..877fa979b 100644 --- a/Core2/gradle/core2.versions.toml +++ b/Core2/gradle/core2.versions.toml @@ -3,6 +3,8 @@ coreKtx = "1.15.0" foundationAndroid = "1.7.3" runtimeAndroid = "1.7.5" material3Android = "1.3.1" +uiTooling = "1.7.5" +uiToolingPreviewAndroid = "1.7.5" matomo = "4.1.4" sentry-android = "7.15.0" @@ -11,5 +13,7 @@ androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = androidx-foundation-android = { group = "androidx.compose.foundation", name = "foundation-android", version.ref = "foundationAndroid" } androidx-runtime-android = { group = "androidx.compose.runtime", name = "runtime-android", version.ref = "runtimeAndroid" } androidx-material3-android = { group = "androidx.compose.material3", name = "material3-android", version.ref = "material3Android" } +androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling", version.ref = "uiTooling" } +androidx-ui-tooling-preview-android = { group = "androidx.compose.ui", name = "ui-tooling-preview-android", version.ref = "uiToolingPreviewAndroid" } matomo = { module = "com.github.matomo-org:matomo-sdk-android", version.ref = "matomo" } sentry-android = { module = "io.sentry:sentry-android", version.ref = "sentry-android" } From cd287f7a268febadb75c80ecbceabb6e0eb3e945 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Fri, 29 Nov 2024 09:14:00 +0100 Subject: [PATCH 16/44] refactor: Remove unnecessary padding --- .../com/infomaniak/library/onboarding/OnboardingScaffold.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt b/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt index 7062a2b22..5fdd6f983 100644 --- a/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt +++ b/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt @@ -57,7 +57,7 @@ fun OnboardingScaffold( OnboardingPageContent(page = onboardingPages[it], paddingValues.calculateTopPadding()) } - HorizontalPagerIndicator(Modifier.padding(vertical = 32.dp), pagerState) + HorizontalPagerIndicator(pagerState = pagerState) bottomContent() } From a1694cbe03d3493b85bf3bad492d898185ba5907 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Fri, 29 Nov 2024 12:15:45 +0100 Subject: [PATCH 17/44] feat: Connect the user at the end of the onboarding --- .../swisstransfer/ui/MainApplication.kt | 2 +- .../swisstransfer/ui/OnboardingActivity.kt | 19 +++++++++++++++++-- .../swisstransfer/ui/utils/AccountUtils.kt | 2 -- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/MainApplication.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/MainApplication.kt index 12499faed..a0aafc289 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/MainApplication.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/MainApplication.kt @@ -59,7 +59,7 @@ class MainApplication : Application(), Configuration.Provider { globalCoroutineScope.launch { accountUtils.init() - transferManager.deleteExpiredTransfers() + if (accountUtils.isUserConnected()) transferManager.deleteExpiredTransfers() } SentryAndroid.init(this) { options: SentryAndroidOptions -> diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt index 71415e3c1..a9053ff02 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt @@ -23,21 +23,36 @@ import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.material3.Surface +import androidx.compose.runtime.rememberCoroutineScope import com.infomaniak.swisstransfer.ui.screen.onboarding.OnboardingScreen import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme +import com.infomaniak.swisstransfer.ui.utils.AccountUtils +import dagger.hilt.android.AndroidEntryPoint +import kotlinx.coroutines.launch +import javax.inject.Inject +@AndroidEntryPoint class OnboardingActivity : ComponentActivity() { + + @Inject + lateinit var accountUtils: AccountUtils + override fun onCreate(savedInstanceState: Bundle?) { enableEdgeToEdge() super.onCreate(savedInstanceState) setContent { + val scope = rememberCoroutineScope() + SwissTransferTheme { Surface { OnboardingScreen( goToMainActivity = { - startActivity(Intent(this, MainActivity::class.java)) - finish() + scope.launch { + accountUtils.login() + startActivity(Intent(this@OnboardingActivity, MainActivity::class.java)) + finish() + } } ) } diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/utils/AccountUtils.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/utils/AccountUtils.kt index 01d55366f..9205da284 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/utils/AccountUtils.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/utils/AccountUtils.kt @@ -31,8 +31,6 @@ class AccountUtils @Inject constructor( suspend fun init() { accountPreferences.currentUserId?.let { accountManager.loadUser(it) - } ?: run { - login() // TODO: Move logic for when user needs to connect to the end of the onboarding activity } uploadRecaptcha.initializeClient() From 3c4a0cca1c7e9153e1d7febdf909aa73751a558e Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Fri, 29 Nov 2024 12:16:55 +0100 Subject: [PATCH 18/44] style: Clean code --- .../java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt index a9053ff02..1e6561b42 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt @@ -38,8 +38,8 @@ class OnboardingActivity : ComponentActivity() { lateinit var accountUtils: AccountUtils override fun onCreate(savedInstanceState: Bundle?) { - enableEdgeToEdge() super.onCreate(savedInstanceState) + enableEdgeToEdge() setContent { val scope = rememberCoroutineScope() From b92ab42a395470dfc490efdddb115c4c74fbfdbe Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Fri, 29 Nov 2024 12:43:46 +0100 Subject: [PATCH 19/44] fix: Update onboarding illustrations --- .../illus/onboarding/StorageBoxPileDark.kt | 478 ++++++++++++------ .../onboarding/ThreeCardsTransferTypeDark.kt | 60 +-- .../TwoPadlocksIntertwinedStarsDark.kt | 380 +++++--------- .../TwoPadlocksIntertwinedStarsLight.kt | 361 +++++-------- 4 files changed, 601 insertions(+), 678 deletions(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPileDark.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPileDark.kt index b7fed1b75..447b81d7a 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPileDark.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPileDark.kt @@ -1,10 +1,13 @@ package com.infomaniak.swisstransfer.ui.images.illus.onboarding import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.* +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.size import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.EvenOdd import androidx.compose.ui.graphics.PathFillType.Companion.NonZero import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.graphics.StrokeCap.Companion.Butt @@ -26,40 +29,197 @@ val AppIllus.StorageBoxPileDark: ImageVector } _storageBoxPileDark = Builder( name = "StorageBoxPileDark", - defaultWidth = 287.0.dp, - defaultHeight = 247.0.dp, - viewportWidth = 287.0f, - viewportHeight = 247.0f + defaultWidth = 289.0.dp, + defaultHeight = 258.0.dp, + viewportWidth = 289.0f, + viewportHeight = 258.0f ).apply { + path( + fill = SolidColor(Color(0xFFA98116)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = EvenOdd + ) { + moveTo(97.98f, 94.05f) + curveToRelative(0.78f, 0.68f, 3.34f, 1.72f, 4.57f, 1.98f) + curveToRelative(-1.29f, -0.57f, -3.01f, -1.2f, -3.95f, -1.99f) + curveToRelative(-4.49f, -3.76f, -1.84f, -10.04f, 3.95f, -9.12f) + curveToRelative(1.06f, 0.17f, 2.86f, 1.02f, 4.31f, 1.73f) + curveToRelative(-0.97f, -0.69f, -3.81f, -2.05f, -4.84f, -2.28f) + curveToRelative(-4.83f, -1.07f, -9.7f, 4.74f, -4.04f, 9.68f) + } group { path( - fill = SolidColor(Color(0xFF67dd95)), - stroke = SolidColor(Color(0xFFdce4e5)), - strokeLineWidth = 1.0f, + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = null, + strokeLineWidth = 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(106.5f, 145.5f) + moveToRelative(97.98f, 94.05f) + lineToRelative(0.66f, -0.75f) + close() + moveTo(102.55f, 96.03f) + lineTo(102.34f, 97.01f) + lineTo(102.95f, 95.12f) + close() + moveTo(98.6f, 94.04f) + lineToRelative(-0.64f, 0.77f) + horizontalLineToRelative(0.0f) + close() + moveTo(102.56f, 84.92f) + lineTo(102.71f, 83.93f) + close() + moveTo(106.86f, 86.65f) + lineTo(106.42f, 87.55f) + lineTo(107.44f, 85.84f) + close() + moveTo(102.02f, 84.37f) + lineTo(101.81f, 85.35f) + close() + moveTo(97.32f, 94.8f) + curveToRelative(0.52f, 0.46f, 1.5f, 0.94f, 2.38f, 1.32f) + curveToRelative(0.92f, 0.39f, 1.93f, 0.74f, 2.64f, 0.89f) + lineToRelative(0.41f, -1.96f) + curveToRelative(-0.52f, -0.11f, -1.4f, -0.41f, -2.27f, -0.77f) + curveToRelative(-0.9f, -0.38f, -1.59f, -0.76f, -1.85f, -0.98f) + close() + moveTo(102.95f, 95.12f) + curveToRelative(-0.7f, -0.31f, -1.38f, -0.58f, -2.09f, -0.9f) + curveToRelative(-0.69f, -0.32f, -1.26f, -0.63f, -1.62f, -0.94f) + lineToRelative(-1.28f, 1.53f) + curveToRelative(0.58f, 0.48f, 1.34f, 0.88f, 2.07f, 1.22f) + curveToRelative(0.71f, 0.33f, 1.53f, 0.66f, 2.12f, 0.92f) + close() + moveTo(99.24f, 93.28f) + curveToRelative(-1.94f, -1.63f, -2.24f, -3.67f, -1.6f, -5.16f) + curveToRelative(0.63f, -1.47f, 2.27f, -2.61f, 4.76f, -2.21f) + lineToRelative(0.31f, -1.97f) + curveToRelative(-3.31f, -0.52f, -5.89f, 1.02f, -6.91f, 3.4f) + curveToRelative(-1.01f, 2.37f, -0.4f, 5.34f, 2.15f, 7.48f) + close() + moveTo(102.4f, 85.91f) + curveToRelative(0.4f, 0.06f, 1.02f, 0.28f, 1.77f, 0.59f) + curveToRelative(0.74f, 0.31f, 1.53f, 0.69f, 2.24f, 1.05f) + lineToRelative(0.89f, -1.79f) + arcToRelative(45.0f, 45.0f, 0.0f, false, false, -2.35f, -1.1f) + curveToRelative(-0.77f, -0.32f, -1.58f, -0.62f, -2.24f, -0.73f) + close() + moveTo(107.44f, 85.84f) + curveToRelative(-0.56f, -0.4f, -1.58f, -0.94f, -2.55f, -1.4f) + curveToRelative(-0.95f, -0.45f, -2.02f, -0.9f, -2.65f, -1.04f) + lineToRelative(-0.43f, 1.95f) + curveToRelative(0.39f, 0.09f, 1.26f, 0.44f, 2.23f, 0.89f) + curveToRelative(0.95f, 0.45f, 1.84f, 0.93f, 2.25f, 1.22f) + close() + moveTo(102.24f, 83.4f) + curveToRelative(-2.85f, -0.63f, -5.71f, 0.76f, -7.04f, 3.06f) + arcToRelative(5.65f, 5.65f, 0.0f, false, false, -0.63f, 4.06f) + curveToRelative(0.32f, 1.48f, 1.21f, 2.94f, 2.76f, 4.29f) + lineToRelative(1.31f, -1.51f) + curveToRelative(-1.29f, -1.13f, -1.91f, -2.23f, -2.12f, -3.21f) + arcToRelative(3.66f, 3.66f, 0.0f, false, true, 0.41f, -2.64f) + curveToRelative(0.9f, -1.57f, 2.9f, -2.55f, 4.87f, -2.11f) + close() + } + path( + fill = SolidColor(Color(0xFFA98116)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = EvenOdd + ) { + moveTo(113.15f, 103.25f) + curveToRelative(-0.14f, -0.05f, -10.5f, 3.16f, -7.58f, 7.85f) + curveToRelative(-0.47f, -2.07f, 0.5f, -4.47f, 7.58f, -7.85f) + } + } + group { + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(113.15f, 103.25f) + lineToRelative(0.43f, 0.9f) + lineToRelative(2.04f, -0.97f) + lineToRelative(-2.09f, -0.85f) + close() + moveTo(105.56f, 111.1f) + lineTo(104.71f, 111.63f) + lineTo(106.54f, 110.88f) + close() + moveTo(113.53f, 102.32f) + curveToRelative(-0.18f, -0.08f, -0.34f, -0.08f, -0.37f, -0.08f) + arcToRelative(1.15f, 1.15f, 0.0f, false, false, -0.24f, 0.02f) + quadToRelative(-0.08f, 0.02f, -0.16f, 0.04f) + arcToRelative(8.0f, 8.0f, 0.0f, false, false, -0.39f, 0.12f) + curveToRelative(-0.31f, 0.1f, -0.74f, 0.25f, -1.23f, 0.44f) + curveToRelative(-0.98f, 0.38f, -2.26f, 0.95f, -3.45f, 1.68f) + curveToRelative(-1.17f, 0.72f, -2.36f, 1.67f, -3.05f, 2.84f) + curveToRelative(-0.35f, 0.6f, -0.58f, 1.28f, -0.59f, 2.02f) + curveToRelative(-0.01f, 0.75f, 0.22f, 1.5f, 0.67f, 2.22f) + lineToRelative(1.7f, -1.05f) + curveToRelative(-0.28f, -0.45f, -0.37f, -0.83f, -0.37f, -1.15f) + curveToRelative(0.0f, -0.33f, 0.1f, -0.67f, 0.32f, -1.03f) + curveToRelative(0.44f, -0.75f, 1.3f, -1.49f, 2.37f, -2.15f) + curveToRelative(1.05f, -0.65f, 2.21f, -1.17f, 3.12f, -1.52f) + curveToRelative(0.45f, -0.18f, 0.84f, -0.31f, 1.11f, -0.39f) + quadToRelative(0.2f, -0.06f, 0.3f, -0.09f) + lineToRelative(0.04f, -0.01f) + curveToRelative(-0.0f, 0.0f, -0.03f, 0.0f, -0.06f, 0.01f) + arcToRelative(1.0f, 1.0f, 0.0f, false, true, -0.11f, 0.0f) + curveToRelative(-0.02f, 0.0f, -0.18f, 0.0f, -0.36f, -0.07f) + close() + moveTo(106.54f, 110.88f) + arcToRelative(2.5f, 2.5f, 0.0f, false, true, -0.01f, -1.17f) + curveToRelative(0.09f, -0.39f, 0.31f, -0.86f, 0.76f, -1.4f) + curveToRelative(0.93f, -1.12f, 2.79f, -2.49f, 6.29f, -4.16f) + lineToRelative(-0.86f, -1.8f) + curveToRelative(-3.58f, 1.71f, -5.75f, 3.23f, -6.96f, 4.68f) + curveToRelative(-0.62f, 0.74f, -1.0f, 1.48f, -1.17f, 2.22f) + arcToRelative(4.5f, 4.5f, 0.0f, false, false, 0.01f, 2.08f) + close() + } + path( + fill = SolidColor(Color(0xFF67DD95)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 0.999f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(106.44f, 145.42f) verticalLineTo(0.5f) - horizontalLineToRelative(106.0f) - verticalLineToRelative(145.0f) + horizontalLineToRelative(105.94f) + verticalLineToRelative(144.92f) close() } path( - fill = SolidColor(Color(0xFF2b383b)), - stroke = SolidColor(Color(0xFFdce4e5)), - strokeLineWidth = 1.0f, + fill = SolidColor(Color(0xFF2B383B)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(70.5f, 145.5f) + moveTo(70.46f, 145.42f) verticalLineTo(0.5f) - horizontalLineToRelative(106.0f) - verticalLineToRelative(145.0f) + horizontalLineToRelative(105.94f) + verticalLineToRelative(144.92f) close() } path( @@ -71,10 +231,10 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(155.2f, 46.32f) - horizontalLineTo(81.05f) - verticalLineToRelative(22.18f) - horizontalLineTo(155.2f) + moveTo(155.12f, 46.3f) + horizontalLineTo(81.01f) + verticalLineTo(68.47f) + horizontalLineToRelative(74.11f) close() } path( @@ -86,64 +246,64 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(104.57f, 58.91f) + moveTo(104.53f, 58.89f) curveToRelative(0.0f, -1.56f, -1.09f, -2.24f, -2.12f, -2.24f) - curveToRelative(-0.98f, 0.0f, -1.61f, 0.57f, -1.82f, 1.04f) + curveToRelative(-0.97f, 0.0f, -1.61f, 0.57f, -1.82f, 1.04f) lineToRelative(-1.18f, -0.06f) lineToRelative(0.61f, -5.07f) horizontalLineToRelative(5.41f) - verticalLineToRelative(1.11f) - horizontalLineToRelative(-4.45f) + verticalLineToRelative(1.1f) + horizontalLineToRelative(-4.44f) lineToRelative(-0.32f, 2.68f) curveToRelative(0.49f, -0.48f, 1.25f, -0.71f, 2.03f, -0.71f) curveToRelative(1.65f, 0.0f, 3.09f, 1.17f, 3.09f, 3.25f) - curveToRelative(0.0f, 2.16f, -1.6f, 3.28f, -3.35f, 3.28f) + curveToRelative(0.0f, 2.16f, -1.6f, 3.27f, -3.35f, 3.27f) curveToRelative(-2.18f, 0.0f, -3.17f, -1.38f, -3.35f, -2.9f) horizontalLineToRelative(1.22f) curveToRelative(0.18f, 1.18f, 0.82f, 1.91f, 2.13f, 1.91f) - curveToRelative(1.13f, 0.0f, 2.11f, -0.82f, 2.11f, -2.28f) - moveToRelative(6.16f, 3.26f) - curveToRelative(-2.51f, 0.0f, -3.67f, -1.9f, -3.67f, -4.89f) - curveToRelative(0.0f, -2.98f, 1.16f, -4.88f, 3.67f, -4.88f) - reflectiveCurveToRelative(3.67f, 1.9f, 3.67f, 4.88f) - curveToRelative(0.0f, 2.99f, -1.16f, 4.89f, -3.67f, 4.89f) + curveToRelative(1.13f, 0.0f, 2.11f, -0.82f, 2.11f, -2.27f) + moveToRelative(6.15f, 3.26f) + curveToRelative(-2.51f, 0.0f, -3.66f, -1.9f, -3.66f, -4.89f) + curveToRelative(0.0f, -2.97f, 1.16f, -4.87f, 3.66f, -4.87f) + reflectiveCurveToRelative(3.66f, 1.9f, 3.66f, 4.87f) + curveToRelative(0.0f, 2.99f, -1.16f, 4.89f, -3.66f, 4.89f) moveToRelative(0.0f, -8.77f) - curveToRelative(-1.48f, 0.0f, -2.4f, 1.27f, -2.4f, 3.89f) + curveToRelative(-1.48f, 0.0f, -2.4f, 1.27f, -2.4f, 3.88f) curveToRelative(0.0f, 2.63f, 0.92f, 3.9f, 2.4f, 3.9f) reflectiveCurveToRelative(2.4f, -1.27f, 2.4f, -3.9f) - curveToRelative(0.0f, -2.61f, -0.92f, -3.89f, -2.4f, -3.89f) - moveToRelative(16.33f, 1.92f) + curveToRelative(0.0f, -2.61f, -0.92f, -3.88f, -2.4f, -3.88f) + moveToRelative(16.32f, 1.92f) horizontalLineToRelative(-1.29f) curveToRelative(-0.31f, -1.05f, -1.17f, -1.79f, -2.68f, -1.79f) curveToRelative(-1.66f, 0.0f, -2.96f, 1.3f, -2.96f, 3.74f) curveToRelative(0.0f, 2.38f, 1.22f, 3.78f, 2.96f, 3.78f) curveToRelative(1.26f, 0.0f, 2.78f, -0.52f, 2.78f, -2.47f) verticalLineToRelative(-0.25f) - horizontalLineToRelative(-2.5f) + horizontalLineToRelative(-2.49f) verticalLineToRelative(-1.14f) horizontalLineToRelative(3.74f) verticalLineToRelative(4.81f) horizontalLineToRelative(-1.04f) lineToRelative(-0.06f, -1.18f) - curveToRelative(-0.61f, 0.96f, -1.72f, 1.35f, -2.98f, 1.35f) + curveToRelative(-0.61f, 0.96f, -1.72f, 1.35f, -2.97f, 1.35f) curveToRelative(-2.72f, 0.0f, -4.26f, -2.03f, -4.26f, -4.9f) curveToRelative(0.0f, -2.92f, 1.73f, -4.86f, 4.38f, -4.86f) curveToRelative(1.95f, 0.0f, 3.51f, 1.09f, 3.9f, 2.91f) moveToRelative(2.18f, -2.74f) horizontalLineToRelative(3.39f) - curveToRelative(1.75f, 0.0f, 3.32f, 0.46f, 3.32f, 2.33f) + curveToRelative(1.75f, 0.0f, 3.31f, 0.45f, 3.31f, 2.33f) curveToRelative(0.0f, 0.9f, -0.39f, 1.7f, -1.04f, 2.08f) - curveToRelative(0.9f, 0.38f, 1.43f, 1.08f, 1.43f, 2.24f) - curveToRelative(0.0f, 2.0f, -1.5f, 2.78f, -3.38f, 2.78f) + curveToRelative(0.9f, 0.38f, 1.43f, 1.08f, 1.43f, 2.23f) + curveToRelative(0.0f, 2.0f, -1.49f, 2.78f, -3.38f, 2.78f) horizontalLineToRelative(-3.72f) close() - moveTo(130.56f, 56.61f) - horizontalLineToRelative(2.28f) - curveToRelative(1.08f, 0.0f, 1.77f, -0.42f, 1.77f, -1.52f) + moveTo(130.5f, 56.59f) + horizontalLineToRelative(2.27f) + curveToRelative(1.08f, 0.0f, 1.77f, -0.41f, 1.77f, -1.52f) curveToRelative(0.0f, -0.96f, -0.71f, -1.39f, -1.77f, -1.39f) - horizontalLineToRelative(-2.28f) + horizontalLineToRelative(-2.27f) close() - moveTo(130.56f, 60.89f) + moveTo(130.5f, 60.86f) horizontalLineToRelative(2.4f) curveToRelative(1.34f, 0.0f, 2.0f, -0.58f, 2.0f, -1.65f) curveToRelative(0.0f, -1.11f, -0.66f, -1.57f, -2.08f, -1.57f) @@ -151,7 +311,7 @@ val AppIllus.StorageBoxPileDark: ImageVector close() } path( - fill = SolidColor(Color(0xFF67dd95)), + fill = SolidColor(Color(0xFF67DD95)), stroke = null, strokeLineWidth = 0.0f, strokeLineCap = Butt, @@ -159,7 +319,7 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(75.9f, 57.24f) + moveTo(75.86f, 57.21f) verticalLineToRelative(1.71f) horizontalLineToRelative(1.56f) verticalLineToRelative(1.22f) @@ -173,22 +333,22 @@ val AppIllus.StorageBoxPileDark: ImageVector verticalLineToRelative(1.22f) horizontalLineToRelative(-1.56f) verticalLineToRelative(1.71f) - horizontalLineTo(91.22f) - verticalLineToRelative(-1.71f) - horizontalLineToRelative(-1.57f) + horizontalLineToRelative(15.31f) + verticalLineTo(66.0f) + horizontalLineToRelative(-1.56f) verticalLineToRelative(-1.22f) - horizontalLineToRelative(1.57f) + horizontalLineToRelative(1.56f) verticalLineToRelative(-1.71f) - horizontalLineToRelative(-1.57f) + horizontalLineToRelative(-1.56f) verticalLineToRelative(-1.22f) - horizontalLineToRelative(1.57f) + horizontalLineToRelative(1.56f) verticalLineToRelative(-1.71f) - horizontalLineToRelative(-1.57f) + horizontalLineToRelative(-1.56f) verticalLineToRelative(-1.22f) - horizontalLineToRelative(1.57f) + horizontalLineToRelative(1.56f) verticalLineToRelative(-1.71f) close() - moveTo(144.39f, 52.16f) + moveTo(144.31f, 52.14f) verticalLineToRelative(1.71f) horizontalLineToRelative(1.56f) verticalLineToRelative(1.22f) @@ -204,48 +364,48 @@ val AppIllus.StorageBoxPileDark: ImageVector verticalLineToRelative(1.71f) horizontalLineToRelative(15.31f) verticalLineToRelative(-1.71f) - horizontalLineToRelative(-1.57f) + horizontalLineToRelative(-1.56f) verticalLineToRelative(-1.22f) - horizontalLineToRelative(1.57f) + horizontalLineToRelative(1.56f) verticalLineToRelative(-1.71f) - horizontalLineToRelative(-1.57f) + horizontalLineToRelative(-1.56f) verticalLineToRelative(-1.22f) - horizontalLineToRelative(1.57f) + horizontalLineToRelative(1.56f) verticalLineToRelative(-1.71f) - horizontalLineToRelative(-1.57f) + horizontalLineToRelative(-1.56f) verticalLineToRelative(-1.22f) - horizontalLineToRelative(1.57f) + horizontalLineToRelative(1.56f) verticalLineToRelative(-1.71f) close() } path( - fill = SolidColor(Color(0xFF67dd95)), - stroke = SolidColor(Color(0xFFdce4e5)), - strokeLineWidth = 1.0f, + fill = SolidColor(Color(0xFF67DD95)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(54.64f, 245.11f) - verticalLineToRelative(-99.89f) - horizontalLineTo(159.41f) - verticalLineToRelative(99.89f) + moveTo(54.61f, 244.98f) + verticalLineTo(145.14f) + horizontalLineToRelative(104.72f) + verticalLineToRelative(99.84f) close() } path( - fill = SolidColor(Color(0xFF3c4f52)), - stroke = SolidColor(Color(0xFFdce4e5)), - strokeLineWidth = 1.0f, + fill = SolidColor(Color(0xFF3C4F52)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(18.75f, 245.11f) - verticalLineToRelative(-99.89f) - horizontalLineToRelative(104.77f) - verticalLineToRelative(99.89f) + moveTo(18.74f, 244.98f) + verticalLineTo(145.14f) + horizontalLineToRelative(104.72f) + verticalLineToRelative(99.84f) close() } path( @@ -257,19 +417,19 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(159.12f, 183.21f) - horizontalLineToRelative(-35.06f) - verticalLineTo(200.4f) - horizontalLineToRelative(35.06f) + moveTo(123.0f, 183.0f) + horizontalLineTo(19.0f) + verticalLineToRelative(17.0f) + horizontalLineToRelative(104.0f) close() - moveTo(123.38f, 183.21f) - horizontalLineTo(18.89f) - verticalLineTo(200.4f) - horizontalLineToRelative(104.49f) + moveTo(146.0f, 183.0f) + horizontalLineToRelative(-22.0f) + verticalLineToRelative(17.0f) + horizontalLineToRelative(22.0f) close() } path( - fill = SolidColor(Color(0xFF67dd95)), + fill = SolidColor(Color(0xFF67DD95)), stroke = null, strokeLineWidth = 0.0f, strokeLineCap = Butt, @@ -277,10 +437,10 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(46.28f, 157.45f) - horizontalLineTo(27.25f) - verticalLineToRelative(9.17f) - horizontalLineToRelative(19.03f) + moveTo(46.26f, 157.37f) + horizontalLineTo(27.23f) + verticalLineToRelative(9.16f) + horizontalLineToRelative(19.02f) close() } path( @@ -292,30 +452,29 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(46.28f, 157.45f) - horizontalLineTo(30.03f) - verticalLineToRelative(9.17f) - horizontalLineToRelative(16.25f) + moveTo(46.26f, 157.37f) + horizontalLineTo(30.01f) + verticalLineToRelative(9.16f) + horizontalLineToRelative(16.24f) close() } path( - fill = SolidColor(Color(0xFF3c4f52)), - stroke = SolidColor(Color(0xFFdce4e5)), - strokeLineWidth = 1.0f, + fill = SolidColor(Color(0xFF3C4F52)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(146.82f, 124.5f) - horizontalLineToRelative(69.07f) - verticalLineToRelative(120.9f) - horizontalLineToRelative(-69.07f) - verticalLineTo(124.5f) + moveTo(146.41f, 135.66f) + horizontalLineToRelative(69.04f) + verticalLineToRelative(120.83f) + horizontalLineToRelative(-69.04f) close() } path( - fill = SolidColor(Color(0xFF67dd95)), + fill = SolidColor(Color(0xFF67DD95)), stroke = null, strokeLineWidth = 0.0f, strokeLineCap = Butt, @@ -323,10 +482,10 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(210.6f, 140.31f) - horizontalLineTo(190.12f) - verticalLineToRelative(9.37f) - horizontalLineToRelative(20.48f) + moveTo(210.15f, 151.46f) + horizontalLineToRelative(-20.47f) + verticalLineToRelative(9.36f) + horizontalLineToRelative(20.47f) close() } path( @@ -338,118 +497,115 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(210.6f, 140.31f) - horizontalLineToRelative(-15.25f) - verticalLineToRelative(9.37f) - horizontalLineToRelative(15.25f) + moveTo(210.15f, 151.46f) + horizontalLineToRelative(-15.24f) + verticalLineToRelative(9.36f) + horizontalLineToRelative(15.24f) close() } path( - fill = SolidColor(Color(0xFF67dd95)), - stroke = SolidColor(Color(0xFFdce4e5)), - strokeLineWidth = 1.0f, + fill = SolidColor(Color(0xFF67DD95)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(216.17f, 124.5f) - horizontalLineToRelative(34.77f) - verticalLineToRelative(120.9f) - horizontalLineToRelative(-34.77f) - verticalLineTo(124.5f) + moveTo(215.72f, 135.66f) + horizontalLineToRelative(34.75f) + verticalLineToRelative(120.83f) + horizontalLineToRelative(-34.75f) close() } path( - fill = SolidColor(Color(0xFF2b383b)), - stroke = SolidColor(Color(0xFFdce4e5)), - strokeLineWidth = 1.0f, + fill = SolidColor(Color(0xFF2B383B)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(7.8f, 192.5f) - horizontalLineTo(117.75f) - verticalLineToRelative(53.01f) + moveTo(7.8f, 203.5f) + horizontalLineToRelative(109.89f) + verticalLineToRelative(52.99f) horizontalLineTo(7.8f) - verticalLineTo(192.5f) close() } path( - fill = SolidColor(Color(0xFF3c4f52)), - stroke = SolidColor(Color(0xFFdce4e5)), - strokeLineWidth = 1.0f, + fill = SolidColor(Color(0xFF014958)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(0.69f, 213.4f) - lineTo(7.66f, 192.5f) - horizontalLineToRelative(109.9f) - lineToRelative(-6.97f, 20.9f) + moveToRelative(0.69f, 224.39f) + lineToRelative(6.96f, -20.89f) + horizontalLineToRelative(109.84f) + lineToRelative(-6.96f, 20.89f) close() } path( - fill = SolidColor(Color(0xFF67dd95)), - stroke = SolidColor(Color(0xFFdce4e5)), - strokeLineWidth = 1.0f, + fill = SolidColor(Color(0xFF67DD95)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(118.02f, 192.5f) - horizontalLineToRelative(48.64f) - verticalLineToRelative(53.01f) - horizontalLineTo(118.02f) - verticalLineTo(192.5f) + moveTo(117.96f, 203.5f) + horizontalLineToRelative(48.61f) + verticalLineToRelative(52.99f) + horizontalLineToRelative(-48.61f) close() } path( - fill = SolidColor(Color(0xFF3c4f52)), - stroke = SolidColor(Color(0xFFdce4e5)), - strokeLineWidth = 1.0f, + fill = SolidColor(Color(0xFF014958)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(125.18f, 213.4f) - lineToRelative(-6.97f, -20.9f) - horizontalLineToRelative(48.58f) - lineToRelative(6.97f, 20.9f) + moveToRelative(125.11f, 224.39f) + lineToRelative(-6.96f, -20.89f) + horizontalLineToRelative(48.56f) + lineToRelative(6.96f, 20.89f) close() } path( - fill = SolidColor(Color(0xFF2b383b)), - stroke = SolidColor(Color(0xFFdce4e5)), - strokeLineWidth = 1.0f, + fill = SolidColor(Color(0xFF2B383B)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(216.21f, 245.23f) - verticalLineTo(221.5f) - horizontalLineToRelative(69.38f) - verticalLineToRelative(23.73f) + moveTo(219.15f, 257.09f) + verticalLineToRelative(-23.72f) + horizontalLineToRelative(69.35f) + verticalLineToRelative(23.72f) close() } path( - fill = SolidColor(Color(0xFF3c4f52)), - stroke = SolidColor(Color(0xFFdce4e5)), - strokeLineWidth = 1.0f, + fill = SolidColor(Color(0xFF3C4F52)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(195.82f, 245.23f) - verticalLineTo(221.5f) - horizontalLineToRelative(69.38f) - verticalLineToRelative(23.73f) + moveTo(195.29f, 257.09f) + verticalLineToRelative(-23.72f) + horizontalLineToRelative(69.35f) + verticalLineToRelative(23.72f) close() } } diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeDark.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeDark.kt index 41df0c8bd..d982cd222 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeDark.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeDark.kt @@ -65,21 +65,21 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector path( fill = SolidColor(Color(0xFF3C4F52)), stroke = SolidColor(Color(0xFFDCE4E5)), - strokeLineWidth = 0.5f, + strokeLineWidth = 1.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(148.5f, 49.33f) - lineTo(227.49f, 28.16f) - arcTo(3.31f, 3.31f, 120.0f, false, true, 231.54f, 30.5f) - lineTo(271.11f, 178.18f) - arcTo(3.31f, 3.31f, 120.0f, false, true, 268.77f, 182.23f) - lineTo(189.78f, 203.39f) - arcTo(3.31f, 3.31f, 120.0f, false, true, 185.73f, 201.05f) - lineTo(146.16f, 53.38f) - arcTo(3.31f, 3.31f, 120.0f, false, true, 148.5f, 49.33f) + moveTo(148.56f, 49.57f) + lineTo(227.55f, 28.4f) + arcTo(3.06f, 3.06f, 120.0f, false, true, 231.3f, 30.56f) + lineTo(270.87f, 178.24f) + arcTo(3.06f, 3.06f, 120.0f, false, true, 268.71f, 181.99f) + lineTo(189.72f, 203.15f) + arcTo(3.06f, 3.06f, 120.0f, false, true, 185.97f, 200.99f) + lineTo(146.4f, 53.31f) + arcTo(3.06f, 3.06f, 120.0f, false, true, 148.56f, 49.57f) close() } path( @@ -209,21 +209,21 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector path( fill = SolidColor(Color(0xFF3C4F52)), stroke = SolidColor(Color(0xFFDCE4E5)), - strokeLineWidth = 0.5f, + strokeLineWidth = 1.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(44.78f, 28.16f) - lineTo(123.77f, 49.33f) - arcTo(3.31f, 3.31f, 60.0f, false, true, 126.11f, 53.38f) - lineTo(86.54f, 201.06f) - arcTo(3.31f, 3.31f, 60.0f, false, true, 82.49f, 203.39f) - lineTo(3.5f, 182.23f) - arcTo(3.31f, 3.31f, 60.0f, false, true, 1.16f, 178.18f) - lineTo(40.73f, 30.5f) - arcTo(3.31f, 3.31f, 60.0f, false, true, 44.78f, 28.16f) + moveTo(44.72f, 28.4f) + lineTo(123.71f, 49.57f) + arcTo(3.06f, 3.06f, 60.0f, false, true, 125.87f, 53.31f) + lineTo(86.3f, 200.99f) + arcTo(3.06f, 3.06f, 60.0f, false, true, 82.56f, 203.15f) + lineTo(3.56f, 181.99f) + arcTo(3.06f, 3.06f, 60.0f, false, true, 1.4f, 178.24f) + lineTo(40.97f, 30.56f) + arcTo(3.06f, 3.06f, 60.0f, false, true, 44.72f, 28.4f) close() } path( @@ -1844,21 +1844,21 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector path( fill = SolidColor(Color(0xFF2B383B)), stroke = SolidColor(Color(0xFFDCE4E5)), - strokeLineWidth = 0.5f, + strokeLineWidth = 1.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(91.0f, 13.25f) - lineTo(183.0f, 13.25f) - arcTo(3.75f, 3.75f, 0.0f, false, true, 186.75f, 17.0f) - lineTo(186.75f, 189.0f) - arcTo(3.75f, 3.75f, 0.0f, false, true, 183.0f, 192.75f) - lineTo(91.0f, 192.75f) - arcTo(3.75f, 3.75f, 0.0f, false, true, 87.25f, 189.0f) - lineTo(87.25f, 17.0f) - arcTo(3.75f, 3.75f, 0.0f, false, true, 91.0f, 13.25f) + moveTo(91.0f, 13.5f) + lineTo(183.0f, 13.5f) + arcTo(3.5f, 3.5f, 0.0f, false, true, 186.5f, 17.0f) + lineTo(186.5f, 189.0f) + arcTo(3.5f, 3.5f, 0.0f, false, true, 183.0f, 192.5f) + lineTo(91.0f, 192.5f) + arcTo(3.5f, 3.5f, 0.0f, false, true, 87.5f, 189.0f) + lineTo(87.5f, 17.0f) + arcTo(3.5f, 3.5f, 0.0f, false, true, 91.0f, 13.5f) close() } path( diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsDark.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsDark.kt index f7a376e7b..1513e5598 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsDark.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsDark.kt @@ -7,14 +7,12 @@ import androidx.compose.foundation.layout.size import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.PathFillType.Companion.EvenOdd import androidx.compose.ui.graphics.PathFillType.Companion.NonZero import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.graphics.StrokeCap.Companion.Butt import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector.Builder -import androidx.compose.ui.graphics.vector.group import androidx.compose.ui.graphics.vector.path import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.tooling.preview.Preview @@ -92,271 +90,155 @@ val AppIllus.TwoPadlocksIntertwinedStarsDark: ImageVector path( fill = SolidColor(Color(0xFF3C4F52)), stroke = SolidColor(Color(0xFFDCE4E5)), - strokeLineWidth = 0.5f, + strokeLineWidth = 1.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(55.33f, 86.87f) - arcToRelative(7.9f, 7.9f, 0.0f, false, true, 10.96f, 2.16f) + moveTo(55.47f, 87.07f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, 10.61f, 2.09f) lineToRelative(36.56f, 54.5f) - arcToRelative(7.9f, 7.9f, 0.0f, false, true, -2.16f, 10.96f) - lineToRelative(-48.43f, 32.48f) - arcToRelative(7.89f, 7.89f, 0.0f, false, true, -10.96f, -2.16f) - lineTo(4.75f, 130.31f) - arcToRelative(7.9f, 7.9f, 0.0f, false, true, 2.16f, -10.96f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, -2.09f, 10.61f) + lineToRelative(-48.43f, 32.49f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, -10.61f, -2.09f) + lineTo(4.95f, 130.17f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, 2.09f, -10.61f) close() } path( fill = SolidColor(Color(0xFF152123)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(49.01f, 135.59f) + lineToRelative(0.01f, 0.3f) + lineToRelative(-0.26f, 0.15f) + lineToRelative(-5.6f, 3.23f) + arcToRelative(3.32f, 3.32f, 0.0f, false, false, 3.32f, 5.76f) + lineToRelative(5.6f, -3.23f) + lineToRelative(0.26f, -0.15f) + lineToRelative(0.25f, 0.16f) + arcToRelative(7.76f, 7.76f, 0.0f, true, false, 0.28f, -13.27f) + lineToRelative(-0.25f, -0.43f) + lineToRelative(0.25f, 0.43f) + arcToRelative(7.76f, 7.76f, 0.0f, false, false, -3.88f, 7.05f) + close() + } + path( + fill = SolidColor(Color(0xFF3C4F52)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(232.7f, 117.28f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, 2.77f, 10.45f) + lineToRelative(-32.96f, 56.75f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, -10.45f, 2.77f) + lineToRelative(-50.43f, -29.29f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, -2.77f, -10.45f) + lineToRelative(32.96f, -56.75f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, 10.45f, -2.77f) + close() + } + path( + fill = SolidColor(Color(0xFF152123)), + stroke = SolidColor(Color(0xFFDCE4E5)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(189.02f, 134.59f) + lineToRelative(-0.01f, 0.3f) + lineToRelative(0.26f, 0.15f) + lineToRelative(5.6f, 3.23f) + arcToRelative(3.32f, 3.32f, 0.0f, false, true, -3.32f, 5.76f) + lineToRelative(-5.6f, -3.23f) + lineToRelative(-0.26f, -0.15f) + lineToRelative(-0.26f, 0.16f) + arcToRelative(7.76f, 7.76f, 0.0f, false, true, -10.89f, -10.43f) + arcToRelative(7.76f, 7.76f, 0.0f, false, true, 10.6f, -2.84f) + lineToRelative(0.25f, -0.43f) + lineToRelative(-0.25f, 0.43f) + arcToRelative(7.76f, 7.76f, 0.0f, false, true, 3.88f, 7.05f) + close() + } + path( + fill = SolidColor(Color(0xFF67DD95)), stroke = null, strokeLineWidth = 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, - pathFillType = EvenOdd + pathFillType = NonZero ) { - moveTo(52.15f, 142.74f) - arcToRelative(8.26f, 8.26f, 0.0f, true, false, -4.26f, -6.35f) - lineToRelative(-5.37f, 3.6f) - arcToRelative(3.82f, 3.82f, 0.0f, true, false, 4.26f, 6.35f) + moveToRelative(109.05f, 14.08f) + lineToRelative(2.95f, -9.28f) + lineToRelative(-4.76f, -1.51f) + lineToRelative(-2.95f, 9.28f) + lineToRelative(-7.75f, -6.15f) + lineToRelative(-2.95f, 3.87f) + lineToRelative(7.82f, 5.92f) + lineToRelative(-7.89f, 5.91f) + lineToRelative(3.29f, 3.96f) + lineToRelative(7.8f, -6.19f) + lineToRelative(3.27f, 9.71f) + lineToRelative(4.45f, -1.59f) + lineToRelative(-2.98f, -9.27f) + lineToRelative(9.96f, -0.27f) + lineToRelative(-0.41f, -4.94f) close() } - group { - path( - fill = SolidColor(Color(0xFFDCE4E5)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(52.15f, 142.74f) - lineToRelative(0.24f, -0.44f) - lineToRelative(-0.27f, -0.14f) - lineToRelative(-0.25f, 0.17f) - close() - moveTo(47.89f, 136.39f) - lineTo(48.17f, 136.81f) - lineTo(48.42f, 136.64f) - lineTo(48.38f, 136.34f) - close() - moveTo(42.52f, 139.99f) - lineTo(42.79f, 140.41f) - close() - moveTo(60.42f, 141.93f) - arcToRelative(7.76f, 7.76f, 0.0f, false, true, -8.04f, 0.37f) - lineToRelative(-0.48f, 0.88f) - arcToRelative(8.76f, 8.76f, 0.0f, false, false, 9.07f, -0.42f) - close() - moveTo(62.55f, 131.16f) - arcToRelative(7.76f, 7.76f, 0.0f, false, true, -2.12f, 10.77f) - lineToRelative(0.56f, 0.83f) - arcToRelative(8.76f, 8.76f, 0.0f, false, false, 2.4f, -12.16f) - close() - moveTo(51.78f, 129.04f) - arcToRelative(7.76f, 7.76f, 0.0f, false, true, 10.77f, 2.12f) - lineToRelative(0.83f, -0.56f) - arcToRelative(8.76f, 8.76f, 0.0f, false, false, -12.16f, -2.39f) - close() - moveTo(48.38f, 136.34f) - arcToRelative(7.76f, 7.76f, 0.0f, false, true, 3.39f, -7.3f) - lineToRelative(-0.56f, -0.83f) - arcToRelative(8.76f, 8.76f, 0.0f, false, false, -3.83f, 8.24f) - close() - moveTo(42.79f, 140.41f) - lineTo(48.17f, 136.81f) - lineTo(47.61f, 135.98f) - lineTo(42.24f, 139.58f) - close() - moveTo(41.89f, 145.02f) - arcToRelative(3.32f, 3.32f, 0.0f, false, true, 0.91f, -4.61f) - lineToRelative(-0.56f, -0.83f) - arcToRelative(4.32f, 4.32f, 0.0f, false, false, -1.18f, 6.0f) - close() - moveTo(46.5f, 145.93f) - arcToRelative(3.32f, 3.32f, 0.0f, false, true, -4.61f, -0.91f) - lineToRelative(-0.83f, 0.56f) - arcToRelative(4.32f, 4.32f, 0.0f, false, false, 6.0f, 1.18f) - close() - moveTo(51.87f, 142.33f) - lineTo(46.5f, 145.93f) - lineTo(47.05f, 146.76f) - lineTo(52.43f, 143.16f) - close() - } - path( - fill = SolidColor(Color(0xFF3C4F52)), - stroke = SolidColor(Color(0xFFDCE4E5)), - strokeLineWidth = 0.5f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveTo(232.83f, 117.07f) - arcToRelative(7.9f, 7.9f, 0.0f, false, true, 2.86f, 10.79f) - lineToRelative(-32.96f, 56.75f) - arcToRelative(7.9f, 7.9f, 0.0f, false, true, -10.79f, 2.86f) - lineToRelative(-50.43f, -29.29f) - arcToRelative(7.9f, 7.9f, 0.0f, false, true, -2.86f, -10.79f) - lineToRelative(32.96f, -56.75f) - arcToRelative(7.9f, 7.9f, 0.0f, false, true, 10.79f, -2.86f) - close() - } - path( - fill = SolidColor(Color(0xFF152123)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = EvenOdd - ) { - moveTo(189.63f, 134.73f) - arcToRelative(8.26f, 8.26f, 0.0f, false, false, -4.13f, -7.51f) - arcToRelative(8.26f, 8.26f, 0.0f, false, false, -11.29f, 3.02f) - arcToRelative(8.26f, 8.26f, 0.0f, false, false, 3.02f, 11.29f) - arcToRelative(8.26f, 8.26f, 0.0f, false, false, 8.56f, -0.18f) - lineToRelative(5.6f, 3.23f) - arcToRelative(3.82f, 3.82f, 0.0f, true, false, 3.82f, -6.62f) - close() - } - } - group { - path( - fill = SolidColor(Color(0xFFDCE4E5)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(189.63f, 134.73f) - lineToRelative(-0.5f, -0.02f) - lineToRelative(-0.01f, 0.3f) - lineToRelative(0.26f, 0.15f) - close() - moveTo(185.81f, 141.35f) - lineTo(186.06f, 140.92f) - lineTo(185.79f, 140.77f) - lineTo(185.54f, 140.93f) - close() - moveTo(195.23f, 137.97f) - lineTo(194.98f, 138.4f) - close() - moveTo(185.25f, 127.66f) - arcToRelative(7.76f, 7.76f, 0.0f, false, true, 3.88f, 7.05f) - lineToRelative(1.0f, 0.04f) - arcToRelative(8.76f, 8.76f, 0.0f, false, false, -4.38f, -7.96f) - close() - moveTo(174.65f, 130.5f) - arcToRelative(7.76f, 7.76f, 0.0f, false, true, 10.6f, -2.84f) - lineToRelative(0.5f, -0.87f) - arcTo(8.76f, 8.76f, 0.0f, false, false, 173.78f, 130.0f) - close() - moveTo(177.49f, 141.1f) - arcToRelative(7.76f, 7.76f, 0.0f, false, true, -2.84f, -10.6f) - lineToRelative(-0.87f, -0.5f) - arcToRelative(8.76f, 8.76f, 0.0f, false, false, 3.21f, 11.97f) - close() - moveTo(185.54f, 140.93f) - arcToRelative(7.76f, 7.76f, 0.0f, false, true, -8.05f, 0.17f) - lineToRelative(-0.5f, 0.87f) - arcToRelative(8.76f, 8.76f, 0.0f, false, false, 9.08f, -0.19f) - close() - moveTo(191.66f, 144.15f) - lineTo(186.06f, 140.92f) - lineTo(185.56f, 141.79f) - lineTo(191.16f, 145.02f) - close() - moveTo(196.2f, 142.94f) - arcToRelative(3.32f, 3.32f, 0.0f, false, true, -4.54f, 1.22f) - lineToRelative(-0.5f, 0.87f) - arcToRelative(4.32f, 4.32f, 0.0f, false, false, 5.91f, -1.58f) - close() - moveTo(194.98f, 138.4f) - arcToRelative(3.32f, 3.32f, 0.0f, false, true, 1.22f, 4.54f) - lineToRelative(0.87f, 0.5f) - arcToRelative(4.32f, 4.32f, 0.0f, false, false, -1.58f, -5.91f) - close() - moveTo(189.38f, 135.17f) - lineTo(194.98f, 138.4f) - lineTo(195.48f, 137.53f) - lineTo(189.88f, 134.3f) - close() - } - path( - fill = SolidColor(Color(0xFF67DD95)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(109.05f, 14.08f) - lineToRelative(2.95f, -9.28f) - lineToRelative(-4.76f, -1.51f) - lineToRelative(-2.95f, 9.28f) - lineToRelative(-7.75f, -6.15f) - lineToRelative(-2.95f, 3.87f) - lineToRelative(7.82f, 5.92f) - lineToRelative(-7.89f, 5.91f) - lineToRelative(3.29f, 3.96f) - lineToRelative(7.8f, -6.19f) - lineToRelative(3.27f, 9.71f) - lineToRelative(4.45f, -1.59f) - lineToRelative(-2.98f, -9.27f) - lineToRelative(9.96f, -0.27f) - lineToRelative(-0.41f, -4.94f) - close() - } - path( - fill = SolidColor(Color(0xFFDCE4E5)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(80.06f, 52.37f) - lineToRelative(1.02f, -3.23f) - lineToRelative(-1.65f, -0.52f) - lineToRelative(-1.03f, 3.23f) - lineToRelative(-2.7f, -2.14f) - lineToRelative(-1.02f, 1.35f) - lineToRelative(2.72f, 2.06f) - lineToRelative(-2.74f, 2.06f) - lineToRelative(1.15f, 1.38f) - lineToRelative(2.72f, -2.16f) - lineToRelative(1.14f, 3.38f) - lineToRelative(1.55f, -0.55f) - lineToRelative(-1.04f, -3.23f) - lineToRelative(3.46f, -0.09f) - lineToRelative(-0.14f, -1.72f) - close() - moveTo(148.2f, 33.79f) - lineToRelative(1.53f, -4.82f) - lineToRelative(-2.47f, -0.79f) - lineToRelative(-1.53f, 4.82f) - lineToRelative(-4.03f, -3.2f) - lineToRelative(-1.53f, 2.01f) - lineToRelative(4.06f, 3.07f) - lineToRelative(-4.1f, 3.07f) - lineToRelative(1.71f, 2.06f) - lineToRelative(4.05f, -3.22f) - lineToRelative(1.7f, 5.05f) - lineToRelative(2.31f, -0.83f) - lineToRelative(-1.55f, -4.82f) - lineToRelative(5.18f, -0.14f) - lineToRelative(-0.21f, -2.57f) - close() - } + path( + fill = SolidColor(Color(0xFFDCE4E5)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(80.06f, 52.37f) + lineToRelative(1.02f, -3.23f) + lineToRelative(-1.65f, -0.52f) + lineToRelative(-1.03f, 3.23f) + lineToRelative(-2.7f, -2.14f) + lineToRelative(-1.02f, 1.35f) + lineToRelative(2.72f, 2.06f) + lineToRelative(-2.74f, 2.06f) + lineToRelative(1.15f, 1.38f) + lineToRelative(2.72f, -2.16f) + lineToRelative(1.14f, 3.38f) + lineToRelative(1.55f, -0.55f) + lineToRelative(-1.04f, -3.23f) + lineToRelative(3.46f, -0.09f) + lineToRelative(-0.14f, -1.72f) + close() + moveTo(148.2f, 33.79f) + lineToRelative(1.53f, -4.82f) + lineToRelative(-2.47f, -0.79f) + lineToRelative(-1.53f, 4.82f) + lineToRelative(-4.03f, -3.2f) + lineToRelative(-1.53f, 2.01f) + lineToRelative(4.06f, 3.07f) + lineToRelative(-4.1f, 3.07f) + lineToRelative(1.71f, 2.06f) + lineToRelative(4.05f, -3.22f) + lineToRelative(1.7f, 5.05f) + lineToRelative(2.31f, -0.83f) + lineToRelative(-1.55f, -4.82f) + lineToRelative(5.18f, -0.14f) + lineToRelative(-0.21f, -2.57f) + close() } }.build() return _twoPadlocksIntertwinedStarsDark!! diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsLight.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsLight.kt index 34a9c3e22..cc8897966 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsLight.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsLight.kt @@ -7,14 +7,12 @@ import androidx.compose.foundation.layout.size import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.PathFillType.Companion.EvenOdd import androidx.compose.ui.graphics.PathFillType.Companion.NonZero import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.graphics.StrokeCap.Companion.Butt import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector.Builder -import androidx.compose.ui.graphics.vector.group import androidx.compose.ui.graphics.vector.path import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.tooling.preview.Preview @@ -110,250 +108,137 @@ val AppIllus.TwoPadlocksIntertwinedStarsLight: ImageVector } path( fill = SolidColor(Color(0xFFE3F6DC)), + stroke = SolidColor(Color(0xFF014958)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(49.01f, 135.59f) + lineToRelative(0.01f, 0.3f) + lineToRelative(-0.26f, 0.15f) + lineToRelative(-5.6f, 3.23f) + arcToRelative(3.32f, 3.32f, 0.0f, false, false, 3.32f, 5.76f) + lineToRelative(5.6f, -3.23f) + lineToRelative(0.26f, -0.15f) + lineToRelative(0.25f, 0.16f) + arcToRelative(7.76f, 7.76f, 0.0f, true, false, 0.28f, -13.27f) + lineToRelative(-0.25f, -0.43f) + lineToRelative(0.25f, 0.43f) + arcToRelative(7.76f, 7.76f, 0.0f, false, false, -3.88f, 7.05f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), + stroke = SolidColor(Color(0xFF014958)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(232.7f, 117.28f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, 2.77f, 10.45f) + lineToRelative(-32.96f, 56.75f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, -10.45f, 2.77f) + lineToRelative(-50.43f, -29.29f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, -2.77f, -10.45f) + lineToRelative(32.96f, -56.75f) + arcToRelative(7.65f, 7.65f, 0.0f, false, true, 10.45f, -2.77f) + close() + } + path( + fill = SolidColor(Color(0xFFE3F6DC)), + stroke = SolidColor(Color(0xFF014958)), + strokeLineWidth = 1.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(189.02f, 134.59f) + lineToRelative(-0.01f, 0.3f) + lineToRelative(0.26f, 0.15f) + lineToRelative(5.6f, 3.23f) + arcToRelative(3.32f, 3.32f, 0.0f, false, true, -3.32f, 5.76f) + lineToRelative(-5.6f, -3.23f) + lineToRelative(-0.26f, -0.15f) + lineToRelative(-0.26f, 0.16f) + arcToRelative(7.76f, 7.76f, 0.0f, false, true, -10.89f, -10.43f) + arcToRelative(7.76f, 7.76f, 0.0f, false, true, 10.6f, -2.84f) + lineToRelative(0.25f, -0.43f) + lineToRelative(-0.25f, 0.43f) + arcToRelative(7.76f, 7.76f, 0.0f, false, true, 3.88f, 7.05f) + close() + } + path( + fill = SolidColor(Color(0xFF3CB572)), stroke = null, strokeLineWidth = 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, - pathFillType = EvenOdd + pathFillType = NonZero ) { - moveTo(52.15f, 142.74f) - arcToRelative(8.26f, 8.26f, 0.0f, true, false, -4.26f, -6.35f) - lineToRelative(-5.37f, 3.6f) - arcToRelative(3.82f, 3.82f, 0.0f, true, false, 4.26f, 6.35f) + moveToRelative(109.05f, 14.08f) + lineToRelative(2.95f, -9.28f) + lineToRelative(-4.76f, -1.51f) + lineToRelative(-2.95f, 9.28f) + lineToRelative(-7.75f, -6.15f) + lineToRelative(-2.95f, 3.87f) + lineToRelative(7.82f, 5.92f) + lineToRelative(-7.89f, 5.91f) + lineToRelative(3.29f, 3.96f) + lineToRelative(7.8f, -6.19f) + lineToRelative(3.27f, 9.71f) + lineToRelative(4.45f, -1.59f) + lineToRelative(-2.98f, -9.27f) + lineToRelative(9.96f, -0.27f) + lineToRelative(-0.41f, -4.94f) close() } - group { - path( - fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(52.15f, 142.74f) - lineToRelative(0.48f, -0.88f) - lineToRelative(-0.53f, -0.29f) - lineToRelative(-0.5f, 0.34f) - close() - moveTo(47.89f, 136.39f) - lineTo(48.44f, 137.22f) - lineTo(48.95f, 136.88f) - lineTo(48.88f, 136.28f) - close() - moveTo(60.15f, 141.51f) - arcToRelative(7.26f, 7.26f, 0.0f, false, true, -7.52f, 0.35f) - lineToRelative(-0.95f, 1.76f) - arcToRelative(9.26f, 9.26f, 0.0f, false, false, 9.59f, -0.44f) - close() - moveTo(62.13f, 131.44f) - arcToRelative(7.26f, 7.26f, 0.0f, false, true, -1.99f, 10.08f) - lineToRelative(1.11f, 1.66f) - arcToRelative(9.26f, 9.26f, 0.0f, false, false, 2.53f, -12.85f) - close() - moveTo(52.06f, 129.45f) - arcToRelative(7.26f, 7.26f, 0.0f, false, true, 10.08f, 1.99f) - lineToRelative(1.66f, -1.11f) - arcToRelative(9.26f, 9.26f, 0.0f, false, false, -12.85f, -2.53f) - close() - moveTo(48.88f, 136.28f) - arcToRelative(7.26f, 7.26f, 0.0f, false, true, 3.17f, -6.83f) - lineToRelative(-1.11f, -1.66f) - arcToRelative(9.26f, 9.26f, 0.0f, false, false, -4.05f, 8.71f) - close() - moveTo(43.07f, 140.82f) - lineTo(48.44f, 137.22f) - lineTo(47.33f, 135.56f) - lineTo(41.96f, 139.16f) - close() - moveTo(42.3f, 144.74f) - arcToRelative(2.82f, 2.82f, 0.0f, false, true, 0.77f, -3.92f) - lineToRelative(-1.11f, -1.66f) - arcToRelative(4.82f, 4.82f, 0.0f, false, false, -1.32f, 6.69f) - close() - moveTo(46.22f, 145.51f) - arcToRelative(2.82f, 2.82f, 0.0f, false, true, -3.92f, -0.77f) - lineToRelative(-1.66f, 1.11f) - arcToRelative(4.82f, 4.82f, 0.0f, false, false, 6.69f, 1.32f) - close() - moveTo(51.59f, 141.91f) - lineTo(46.22f, 145.51f) - lineTo(47.33f, 147.17f) - lineTo(52.7f, 143.57f) - close() - } - path( - fill = SolidColor(Color(0xFFFFFFFF)), - stroke = SolidColor(Color(0xFF014958)), - strokeLineWidth = 1.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveTo(232.7f, 117.28f) - arcToRelative(7.65f, 7.65f, 0.0f, false, true, 2.77f, 10.45f) - lineToRelative(-32.96f, 56.75f) - arcToRelative(7.65f, 7.65f, 0.0f, false, true, -10.45f, 2.77f) - lineToRelative(-50.43f, -29.29f) - arcToRelative(7.65f, 7.65f, 0.0f, false, true, -2.77f, -10.45f) - lineToRelative(32.96f, -56.75f) - arcToRelative(7.65f, 7.65f, 0.0f, false, true, 10.45f, -2.77f) - close() - } - path( - fill = SolidColor(Color(0xFFE3F6DC)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = EvenOdd - ) { - moveTo(189.63f, 134.73f) - arcToRelative(8.26f, 8.26f, 0.0f, false, false, -4.13f, -7.51f) - arcToRelative(8.26f, 8.26f, 0.0f, false, false, -11.29f, 3.02f) - arcToRelative(8.26f, 8.26f, 0.0f, false, false, 3.02f, 11.29f) - arcToRelative(8.26f, 8.26f, 0.0f, false, false, 8.56f, -0.18f) - lineToRelative(5.6f, 3.23f) - arcToRelative(3.82f, 3.82f, 0.0f, true, false, 3.82f, -6.62f) - close() - } - } - group { - path( - fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(189.63f, 134.73f) - lineToRelative(-1.0f, -0.04f) - lineToRelative(-0.03f, 0.61f) - lineToRelative(0.52f, 0.3f) - close() - moveTo(185.81f, 141.35f) - lineTo(186.31f, 140.49f) - lineTo(185.78f, 140.19f) - lineTo(185.27f, 140.51f) - close() - moveTo(195.23f, 137.97f) - lineTo(194.73f, 138.83f) - close() - moveTo(185.0f, 128.09f) - arcToRelative(7.26f, 7.26f, 0.0f, false, true, 3.63f, 6.6f) - lineToRelative(2.0f, 0.08f) - arcToRelative(9.26f, 9.26f, 0.0f, false, false, -4.62f, -8.41f) - close() - moveTo(175.08f, 130.75f) - arcToRelative(7.26f, 7.26f, 0.0f, false, true, 9.92f, -2.66f) - lineToRelative(1.0f, -1.73f) - arcToRelative(9.26f, 9.26f, 0.0f, false, false, -12.65f, 3.39f) - close() - moveTo(177.74f, 140.67f) - arcToRelative(7.26f, 7.26f, 0.0f, false, true, -2.66f, -9.92f) - lineToRelative(-1.73f, -1.0f) - arcToRelative(9.26f, 9.26f, 0.0f, false, false, 3.39f, 12.65f) - close() - moveTo(185.27f, 140.51f) - arcToRelative(7.26f, 7.26f, 0.0f, false, true, -7.53f, 0.16f) - lineToRelative(-1.0f, 1.73f) - arcToRelative(9.26f, 9.26f, 0.0f, false, false, 9.6f, -0.2f) - close() - moveTo(191.91f, 143.72f) - lineTo(186.31f, 140.49f) - lineTo(185.31f, 142.22f) - lineTo(190.91f, 145.45f) - close() - moveTo(195.76f, 142.69f) - arcToRelative(2.82f, 2.82f, 0.0f, false, true, -3.86f, 1.03f) - lineToRelative(-1.0f, 1.73f) - arcToRelative(4.82f, 4.82f, 0.0f, false, false, 6.59f, -1.76f) - close() - moveTo(194.73f, 138.83f) - arcToRelative(2.82f, 2.82f, 0.0f, false, true, 1.03f, 3.86f) - lineToRelative(1.73f, 1.0f) - arcToRelative(4.82f, 4.82f, 0.0f, false, false, -1.77f, -6.59f) - close() - moveTo(189.13f, 135.6f) - lineTo(194.73f, 138.83f) - lineTo(195.73f, 137.1f) - lineTo(190.13f, 133.87f) - close() - } - path( - fill = SolidColor(Color(0xFF3CB572)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(109.05f, 14.08f) - lineToRelative(2.95f, -9.28f) - lineToRelative(-4.76f, -1.51f) - lineToRelative(-2.95f, 9.28f) - lineToRelative(-7.75f, -6.15f) - lineToRelative(-2.95f, 3.87f) - lineToRelative(7.82f, 5.92f) - lineToRelative(-7.89f, 5.91f) - lineToRelative(3.29f, 3.96f) - lineToRelative(7.8f, -6.19f) - lineToRelative(3.27f, 9.71f) - lineToRelative(4.45f, -1.59f) - lineToRelative(-2.98f, -9.27f) - lineToRelative(9.96f, -0.27f) - lineToRelative(-0.41f, -4.94f) - close() - } - path( - fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(80.06f, 52.37f) - lineToRelative(1.02f, -3.23f) - lineToRelative(-1.65f, -0.52f) - lineToRelative(-1.03f, 3.23f) - lineToRelative(-2.7f, -2.14f) - lineToRelative(-1.02f, 1.35f) - lineToRelative(2.72f, 2.06f) - lineToRelative(-2.74f, 2.06f) - lineToRelative(1.15f, 1.38f) - lineToRelative(2.72f, -2.16f) - lineToRelative(1.14f, 3.38f) - lineToRelative(1.55f, -0.55f) - lineToRelative(-1.04f, -3.23f) - lineToRelative(3.46f, -0.09f) - lineToRelative(-0.14f, -1.72f) - close() - moveTo(148.2f, 33.79f) - lineToRelative(1.53f, -4.82f) - lineToRelative(-2.47f, -0.79f) - lineToRelative(-1.53f, 4.82f) - lineToRelative(-4.03f, -3.2f) - lineToRelative(-1.53f, 2.01f) - lineToRelative(4.06f, 3.07f) - lineToRelative(-4.1f, 3.07f) - lineToRelative(1.71f, 2.06f) - lineToRelative(4.05f, -3.22f) - lineToRelative(1.7f, 5.05f) - lineToRelative(2.31f, -0.83f) - lineToRelative(-1.55f, -4.82f) - lineToRelative(5.18f, -0.14f) - lineToRelative(-0.21f, -2.57f) - close() - } + path( + fill = SolidColor(Color(0xFF014958)), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveToRelative(80.06f, 52.37f) + lineToRelative(1.02f, -3.23f) + lineToRelative(-1.65f, -0.52f) + lineToRelative(-1.03f, 3.23f) + lineToRelative(-2.7f, -2.14f) + lineToRelative(-1.02f, 1.35f) + lineToRelative(2.72f, 2.06f) + lineToRelative(-2.74f, 2.06f) + lineToRelative(1.15f, 1.38f) + lineToRelative(2.72f, -2.16f) + lineToRelative(1.14f, 3.38f) + lineToRelative(1.55f, -0.55f) + lineToRelative(-1.04f, -3.23f) + lineToRelative(3.46f, -0.09f) + lineToRelative(-0.14f, -1.72f) + close() + moveTo(148.2f, 33.79f) + lineToRelative(1.53f, -4.82f) + lineToRelative(-2.47f, -0.79f) + lineToRelative(-1.53f, 4.82f) + lineToRelative(-4.03f, -3.2f) + lineToRelative(-1.53f, 2.01f) + lineToRelative(4.06f, 3.07f) + lineToRelative(-4.1f, 3.07f) + lineToRelative(1.71f, 2.06f) + lineToRelative(4.05f, -3.22f) + lineToRelative(1.7f, 5.05f) + lineToRelative(2.31f, -0.83f) + lineToRelative(-1.55f, -4.82f) + lineToRelative(5.18f, -0.14f) + lineToRelative(-0.21f, -2.57f) + close() } }.build() return _twoPadlocksIntertwinedStarsLight!! From ad500703893ace8b043a71b640d747d9d65f86b3 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Fri, 29 Nov 2024 12:49:14 +0100 Subject: [PATCH 20/44] style: Add todo and clean temporary HorizontalPagerIndicator --- .../library/onboarding/HorizontalPagerIndicator.kt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/HorizontalPagerIndicator.kt b/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/HorizontalPagerIndicator.kt index 6e86fa6c3..282e5dc0b 100644 --- a/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/HorizontalPagerIndicator.kt +++ b/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/HorizontalPagerIndicator.kt @@ -19,23 +19,23 @@ package com.infomaniak.library.onboarding import androidx.compose.foundation.background import androidx.compose.foundation.layout.* -import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.pager.PagerState +import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.foundation.shape.CircleShape import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +// TODO: Simple placeholder code for now. Will be styled correctly in the next PR @Composable -fun ColumnScope.HorizontalPagerIndicator(modifier: Modifier = Modifier, pagerState: PagerState) { +fun HorizontalPagerIndicator(modifier: Modifier = Modifier, pagerState: PagerState) { Row( modifier .wrapContentHeight() .fillMaxWidth() - .align(Alignment.CenterHorizontally) .padding(bottom = 8.dp), horizontalArrangement = Arrangement.Center ) { @@ -51,3 +51,9 @@ fun ColumnScope.HorizontalPagerIndicator(modifier: Modifier = Modifier, pagerSta } } } + +@Preview +@Composable +private fun Preview() { + HorizontalPagerIndicator(pagerState = rememberPagerState { 3 }) +} From 30229a437cbc7f789ce06ed817082aa5882625cc Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Fri, 29 Nov 2024 12:52:56 +0100 Subject: [PATCH 21/44] style: Rename angleDegree into highlightAngleDegree for clarity --- .../ui/screen/onboarding/OnboardingScreen.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt index beee36a2a..19b636f96 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -119,7 +119,7 @@ private fun TitleAndDescription(page: Page, isHighlighted: () -> Boolean) { templateRes = page.subtitleTemplateRes, argumentRes = page.subtitleArgumentRes, style = SwissTransferTheme.typography.h1, - angleDegrees = page.angleDegree, + angleDegrees = page.highlightAngleDegree, isHighlighted = isHighlighted, ) } @@ -146,7 +146,7 @@ private enum class Page( @StringRes val titleRes: Int, @StringRes val subtitleTemplateRes: Int, @StringRes val subtitleArgumentRes: Int, - val angleDegree: Double, + val highlightAngleDegree: Double, ) { STORAGE( background = AppIllus.RadialGradientCornerTopRight, @@ -154,7 +154,7 @@ private enum class Page( titleRes = R.string.onboardingStorageTitle, subtitleTemplateRes = R.string.onboardingStorageSubtitleTemplate, subtitleArgumentRes = R.string.onboardingStorageSubtitleArgument, - angleDegree = -3.0, + highlightAngleDegree = -3.0, ), EXPIRATION( background = AppIllus.RadialGradientCornerTopLeft, @@ -162,7 +162,7 @@ private enum class Page( titleRes = R.string.onboardingExpirationTitle, subtitleTemplateRes = R.string.onboardingExpirationSubtitleTemplate, subtitleArgumentRes = R.string.onboardingExpirationSubtitleArgument, - angleDegree = -3.0, + highlightAngleDegree = -3.0, ), PASSWORD( background = AppIllus.RadialGradientCornerTopRight, @@ -170,7 +170,7 @@ private enum class Page( titleRes = R.string.onboardingPasswordTitle, subtitleTemplateRes = R.string.onboardingPasswordSubtitleTemplate, subtitleArgumentRes = R.string.onboardingPasswordSubtitleArgument, - angleDegree = 3.0, + highlightAngleDegree = 3.0, ), } From e3dcc8b670b386cbe2f0b4c67d2c0906d35e0f98 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Fri, 29 Nov 2024 15:54:57 +0100 Subject: [PATCH 22/44] fix: Windows inset to draw the background of the onboarding behind system bars --- .../library/onboarding/OnboardingScaffold.kt | 36 ++++++++++++------- .../swisstransfer/ui/OnboardingActivity.kt | 7 +++- .../ui/screen/onboarding/OnboardingScreen.kt | 13 +++++-- 3 files changed, 41 insertions(+), 15 deletions(-) diff --git a/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt b/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt index 5fdd6f983..8388f9583 100644 --- a/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt +++ b/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt @@ -43,29 +43,41 @@ import androidx.compose.ui.unit.dp fun OnboardingScaffold( pagerState: PagerState, onboardingPages: List, - bottomContent: @Composable () -> Unit, + bottomContent: @Composable (PaddingValues) -> Unit, ) { Scaffold { paddingValues -> - Column( - modifier = Modifier.padding( - bottom = paddingValues.calculateBottomPadding(), - start = paddingValues.calculateStartPadding(LocalLayoutDirection.current), - end = paddingValues.calculateEndPadding(LocalLayoutDirection.current), - ) - ) { + Column { + val left = paddingValues.calculateLeftPadding(LocalLayoutDirection.current) + val right = paddingValues.calculateRightPadding(LocalLayoutDirection.current) + HorizontalPager(pagerState, modifier = Modifier.weight(1f)) { - OnboardingPageContent(page = onboardingPages[it], paddingValues.calculateTopPadding()) + OnboardingPageContent( + modifier = Modifier.windowInsetsPadding( + WindowInsets(left = left, top = paddingValues.calculateTopPadding(), right = right) + ), + page = onboardingPages[it], + 0.dp, + ) } - HorizontalPagerIndicator(pagerState = pagerState) + HorizontalPagerIndicator( + modifier = Modifier.windowInsetsPadding(WindowInsets(left = left, right = right)), + pagerState = pagerState + ) - bottomContent() + bottomContent( + PaddingValues( + bottom = paddingValues.calculateBottomPadding(), + start = paddingValues.calculateStartPadding(LocalLayoutDirection.current), + end = paddingValues.calculateEndPadding(LocalLayoutDirection.current), + ) + ) } } } @Composable -private fun OnboardingPageContent(page: OnboardingPage, calculateTopPadding: Dp) { +private fun OnboardingPageContent(modifier: Modifier, page: OnboardingPage, calculateTopPadding: Dp) { Box( modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center, diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt index 1e6561b42..cdae05874 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt @@ -18,8 +18,11 @@ package com.infomaniak.swisstransfer.ui import android.content.Intent +import android.graphics.Color +import android.os.Build import android.os.Bundle import androidx.activity.ComponentActivity +import androidx.activity.SystemBarStyle import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.material3.Surface @@ -39,7 +42,9 @@ class OnboardingActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - enableEdgeToEdge() + enableEdgeToEdge(navigationBarStyle = SystemBarStyle.auto(Color.TRANSPARENT, Color.TRANSPARENT)) + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) window.isNavigationBarContrastEnforced = false setContent { val scope = rememberCoroutineScope() diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt index 19b636f96..7cb1273c7 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -30,6 +30,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.infomaniak.library.onboarding.OnboardingPage import com.infomaniak.library.onboarding.OnboardingScaffold @@ -78,6 +79,9 @@ fun OnboardingScreen(goToMainActivity: () -> Unit) { onboardingPages = onboardingPages, bottomContent = { BottomContent( + modifier = Modifier + .padding(it) + .consumeWindowInsets(it), isLastPage = { isLastPage }, startMainActivity = goToMainActivity, goToNextPage = { coroutineScope.launch { pagerState.animateScrollToPage(pagerState.currentPage + 1) } }, @@ -126,10 +130,15 @@ private fun TitleAndDescription(page: Page, isHighlighted: () -> Boolean) { } @Composable -private fun BottomContent(isLastPage: () -> Boolean, startMainActivity: () -> Unit, goToNextPage: () -> Unit) { +private fun BottomContent( + modifier: Modifier = Modifier, + isLastPage: () -> Boolean, + startMainActivity: () -> Unit, + goToNextPage: () -> Unit +) { Box( contentAlignment = Alignment.Center, - modifier = Modifier + modifier = modifier .fillMaxWidth() .height(140.dp), ) { From d16f989f1437752edfffd2511cbb730dceb10e2f Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Tue, 3 Dec 2024 09:03:45 +0100 Subject: [PATCH 23/44] fix: English onboarding storage wording --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f5333ee47..e88ddadfa 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -64,7 +64,7 @@ Protect your shares with %s Stay in Control! Share up to 50 GB - %s of files for free—no sign-up needed. + %s of files for free without any registration. Send Big! Received files Received From fe76f5832ccd17a9383b5aebc0d03422175a1cfb Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Wed, 4 Dec 2024 09:20:59 +0100 Subject: [PATCH 24/44] style: Add space to split debug dependencies from normal ones --- Core2/Onboarding/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/Core2/Onboarding/build.gradle.kts b/Core2/Onboarding/build.gradle.kts index 97add85b1..c193cbf3a 100644 --- a/Core2/Onboarding/build.gradle.kts +++ b/Core2/Onboarding/build.gradle.kts @@ -47,5 +47,6 @@ dependencies { implementation(core2.androidx.runtime.android) implementation(core2.androidx.foundation.android) implementation(core2.androidx.ui.tooling.preview.android) + debugImplementation(core2.androidx.ui.tooling) } From 39492ca93a20a0b080f53dcea0ab095299d12001 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Wed, 4 Dec 2024 10:33:32 +0100 Subject: [PATCH 25/44] fix: Edge to edge on onboarding horizontal pager The page's content didn't scroll vertically up to the top edge of the screen correctly and was missing some horizontal padding if the width of the illustration is too large --- .../library/onboarding/OnboardingScaffold.kt | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt b/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt index 8388f9583..4ce4dbf33 100644 --- a/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt +++ b/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt @@ -36,7 +36,6 @@ import androidx.compose.ui.graphics.vector.ImageVector.Builder import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp @Composable @@ -47,29 +46,30 @@ fun OnboardingScaffold( ) { Scaffold { paddingValues -> Column { - val left = paddingValues.calculateLeftPadding(LocalLayoutDirection.current) - val right = paddingValues.calculateRightPadding(LocalLayoutDirection.current) + val startPadding = paddingValues.calculateStartPadding(LocalLayoutDirection.current) + val endPadding = paddingValues.calculateEndPadding(LocalLayoutDirection.current) HorizontalPager(pagerState, modifier = Modifier.weight(1f)) { OnboardingPageContent( - modifier = Modifier.windowInsetsPadding( - WindowInsets(left = left, top = paddingValues.calculateTopPadding(), right = right) - ), page = onboardingPages[it], - 0.dp, + contentPadding = PaddingValues( + top = paddingValues.calculateTopPadding(), + start = startPadding, + end = endPadding, + ), ) } HorizontalPagerIndicator( - modifier = Modifier.windowInsetsPadding(WindowInsets(left = left, right = right)), - pagerState = pagerState + modifier = Modifier.padding(PaddingValues(start = startPadding, end = endPadding)), + pagerState = pagerState, ) bottomContent( PaddingValues( bottom = paddingValues.calculateBottomPadding(), - start = paddingValues.calculateStartPadding(LocalLayoutDirection.current), - end = paddingValues.calculateEndPadding(LocalLayoutDirection.current), + start = startPadding, + end = endPadding, ) ) } @@ -77,7 +77,7 @@ fun OnboardingScaffold( } @Composable -private fun OnboardingPageContent(modifier: Modifier, page: OnboardingPage, calculateTopPadding: Dp) { +private fun OnboardingPageContent(page: OnboardingPage, contentPadding: PaddingValues) { Box( modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center, @@ -90,9 +90,9 @@ private fun OnboardingPageContent(modifier: Modifier, page: OnboardingPage, calc ) Column( modifier = Modifier - .padding(top = calculateTopPadding) .fillMaxHeight() - .verticalScroll(rememberScrollState()), + .verticalScroll(rememberScrollState()) + .padding(contentPadding), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.SpaceEvenly, ) { From 545c69399c3ed4f531728d0a52c760589eef3c7e Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Wed, 4 Dec 2024 11:16:32 +0100 Subject: [PATCH 26/44] style: Add some missing variable names --- .../library/onboarding/OnboardingScaffold.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt b/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt index 4ce4dbf33..9366a5054 100644 --- a/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt +++ b/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt @@ -49,9 +49,9 @@ fun OnboardingScaffold( val startPadding = paddingValues.calculateStartPadding(LocalLayoutDirection.current) val endPadding = paddingValues.calculateEndPadding(LocalLayoutDirection.current) - HorizontalPager(pagerState, modifier = Modifier.weight(1f)) { + HorizontalPager(pagerState, modifier = Modifier.weight(1f)) { pageIndex -> OnboardingPageContent( - page = onboardingPages[it], + page = onboardingPages[pageIndex], contentPadding = PaddingValues( top = paddingValues.calculateTopPadding(), start = startPadding, @@ -83,7 +83,7 @@ private fun OnboardingPageContent(page: OnboardingPage, contentPadding: PaddingV contentAlignment = Alignment.Center, ) { Image( - page.background, + imageVector = page.background, contentDescription = null, modifier = Modifier.fillMaxSize(), contentScale = ContentScale.FillBounds, @@ -122,7 +122,7 @@ private fun Preview() { viewportHeight = 24.0f, ).build() - val a = OnboardingPage( + val onboardingPage = OnboardingPage( background = imageVector, illustration = { Box( @@ -138,7 +138,7 @@ private fun Preview() { OnboardingScaffold( pagerState = rememberPagerState { 3 }, - onboardingPages = listOf(a, a, a), + onboardingPages = listOf(onboardingPage, onboardingPage, onboardingPage), bottomContent = { Box( modifier = Modifier From 0838cbc16148ddf1531c26fd7e68ec4fe3f35a7c Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Wed, 4 Dec 2024 11:51:18 +0100 Subject: [PATCH 27/44] refactor: Remove double signature for HighlightedText --- .../ui/components/HighlightedText.kt | 31 +++---------------- .../newtransfer/upload/components/AdHeader.kt | 7 ++++- 2 files changed, 11 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/components/HighlightedText.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/components/HighlightedText.kt index 52f63d211..f5d1b892e 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/components/HighlightedText.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/components/HighlightedText.kt @@ -74,31 +74,6 @@ fun HighlightedText( ) } -@Composable -fun HighlightedText( - modifier: Modifier = Modifier, - templateRes: Int, - argumentRes: Int, - style: TextStyle, - verticalPadding: Float = VERTICAL_PADDING, - horizontalPadding: Float = HORIZONTAL_PADDING, - angleDegrees: Double = ROTATION_ANGLE_DEGREE, -) { - var isHighlighted by rememberSaveable { mutableStateOf(false) } - LaunchedEffect(Unit) { isHighlighted = true } - - HighlightedTextCore( - templateRes, - argumentRes, - style, - modifier, - verticalPadding, - horizontalPadding, - angleDegrees, - { isHighlighted }, - ) -} - @Composable private fun HighlightedTextCore( templateRes: Int, @@ -108,7 +83,7 @@ private fun HighlightedTextCore( verticalPadding: Float, horizontalPadding: Float, angleDegrees: Double, - isHighlighted: () -> Boolean + isHighlighted: () -> Boolean, ) { val template = stringResource(templateRes) val argument = stringResource(argumentRes) @@ -259,12 +234,16 @@ private fun areOnDifferentLines(previousRect: Rect, currentRect: Rect) = previou @Composable private fun Preview() { SwissTransferTheme { + var isHighlighted by rememberSaveable { mutableStateOf(false) } + LaunchedEffect(Unit) { isHighlighted = true } + Surface { Box(modifier = Modifier.padding(20.dp)) { HighlightedText( templateRes = R.string.uploadProgressTitleTemplate, argumentRes = R.string.uploadProgressTitleArgument, style = SwissTransferTheme.typography.bodyMedium, + isHighlighted = { isHighlighted } ) } } diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/newtransfer/upload/components/AdHeader.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/newtransfer/upload/components/AdHeader.kt index 9e4bdd397..4d209ba71 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/newtransfer/upload/components/AdHeader.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/newtransfer/upload/components/AdHeader.kt @@ -23,7 +23,8 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Surface import androidx.compose.material3.Text -import androidx.compose.runtime.Composable +import androidx.compose.runtime.* +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign @@ -44,12 +45,16 @@ fun ColumnScope.AdHeader(adScreenType: UploadProgressAdType) { .verticalScroll(rememberScrollState()), horizontalAlignment = Alignment.CenterHorizontally, ) { + var isHighlighted by rememberSaveable { mutableStateOf(false) } + LaunchedEffect(Unit) { isHighlighted = true } + Spacer(Modifier.height(Margin.Giant)) HighlightedText( templateRes = R.string.uploadProgressTitleTemplate, argumentRes = R.string.uploadProgressTitleArgument, style = SwissTransferTheme.typography.bodyMedium, + isHighlighted = { isHighlighted } ) Spacer(Modifier.height(Margin.Huge)) From 9dfefc51d3eb5215cfda0826b927aa88ccf5f5ef Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Wed, 4 Dec 2024 12:50:07 +0100 Subject: [PATCH 28/44] style: Update some copyright, new lines and imports --- .../swisstransfer/ui/images/icons/ArrowRight.kt | 17 +++++++++++++++++ .../onboarding/RadialGradientCornerTopLeft.kt | 2 -- .../RadialGradientCornerTopLeftDark.kt | 17 +++++++++++++++++ .../RadialGradientCornerTopLeftLight.kt | 17 +++++++++++++++++ .../onboarding/RadialGradientCornerTopRight.kt | 1 - .../RadialGradientCornerTopRightDark.kt | 17 +++++++++++++++++ .../RadialGradientCornerTopRightLight.kt | 17 +++++++++++++++++ .../images/illus/onboarding/StorageBoxPile.kt | 1 - .../illus/onboarding/ThreeCardsTransferType.kt | 1 - .../onboarding/TwoPadlocksIntertwinedStars.kt | 1 - .../ui/screen/onboarding/OnboardingScreen.kt | 1 - 11 files changed, 85 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/icons/ArrowRight.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/icons/ArrowRight.kt index e0da18ab4..af8a0da5d 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/icons/ArrowRight.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/icons/ArrowRight.kt @@ -1,3 +1,20 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package com.infomaniak.swisstransfer.ui.images.icons import androidx.compose.foundation.Image diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeft.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeft.kt index e40e889ed..5bf9bafa8 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeft.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeft.kt @@ -17,11 +17,9 @@ */ package com.infomaniak.swisstransfer.ui.images.illus.onboarding - import android.content.res.Configuration import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.material3.Surface import androidx.compose.runtime.Composable diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftDark.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftDark.kt index ce2feaf06..8790c75be 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftDark.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftDark.kt @@ -1,3 +1,20 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package com.infomaniak.swisstransfer.ui.images.illus.onboarding import androidx.compose.foundation.Image diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftLight.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftLight.kt index 2516e07d5..90d608612 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftLight.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftLight.kt @@ -1,3 +1,20 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package com.infomaniak.swisstransfer.ui.images.illus.onboarding import androidx.compose.foundation.Image diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRight.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRight.kt index 96ced9c36..808a70a38 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRight.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRight.kt @@ -17,7 +17,6 @@ */ package com.infomaniak.swisstransfer.ui.images.illus.onboarding - import android.content.res.Configuration import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Box diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightDark.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightDark.kt index d11466c50..b037b7492 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightDark.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightDark.kt @@ -1,3 +1,20 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package com.infomaniak.swisstransfer.ui.images.illus.onboarding import androidx.compose.foundation.Image diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightLight.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightLight.kt index 2fc8eb9bb..54612a64e 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightLight.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightLight.kt @@ -1,3 +1,20 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package com.infomaniak.swisstransfer.ui.images.illus.onboarding import androidx.compose.foundation.Image diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPile.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPile.kt index 88817546e..0faf63e1f 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPile.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPile.kt @@ -17,7 +17,6 @@ */ package com.infomaniak.swisstransfer.ui.images.illus.onboarding - import android.content.res.Configuration import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Box diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferType.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferType.kt index f75888c95..4100c92d8 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferType.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferType.kt @@ -17,7 +17,6 @@ */ package com.infomaniak.swisstransfer.ui.images.illus.onboarding - import android.content.res.Configuration import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Box diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStars.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStars.kt index 45b45a5a9..14ac39510 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStars.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStars.kt @@ -17,7 +17,6 @@ */ package com.infomaniak.swisstransfer.ui.images.illus.onboarding - import android.content.res.Configuration import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Box diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt index 7cb1273c7..c9c0d3837 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -30,7 +30,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.infomaniak.library.onboarding.OnboardingPage import com.infomaniak.library.onboarding.OnboardingScaffold From 75191606e628bdcae1c978c5c3dc874a61f883c5 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Wed, 4 Dec 2024 12:53:36 +0100 Subject: [PATCH 29/44] refactor: Simplify onboarding isHighlighted update logic --- .../swisstransfer/ui/screen/onboarding/OnboardingScreen.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt index c9c0d3837..f7fd48dbb 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -57,8 +57,7 @@ fun OnboardingScreen(goToMainActivity: () -> Unit) { // Start the highlighting of the text when the associated page is reached in the HorizontalPager LaunchedEffect(pagerState.currentPage) { val currentPage = Page.entries[pagerState.currentPage] - val setIsHighlighted = isHighlighted[currentPage]?.component2() - setIsHighlighted?.invoke(true) + isHighlighted[currentPage]?.value = true } BackHandler(pagerState.currentPage > 0) { From 23aab0381c4c1dbe51cf4fb41817adeab8cddf08 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Wed, 4 Dec 2024 12:58:46 +0100 Subject: [PATCH 30/44] style: Clean OnboardingScreen --- .../ui/screen/onboarding/OnboardingScreen.kt | 27 ++++++++----------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt index f7fd48dbb..3e41d14b7 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -67,19 +67,17 @@ fun OnboardingScreen(goToMainActivity: () -> Unit) { } val onboardingPages = buildList { - Page.entries.forEach { page -> - add(page.toOnboardingPage(isHighlighted)) - } + Page.entries.forEach { page -> add(page.toOnboardingPage(isHighlighted)) } } OnboardingScaffold( pagerState = pagerState, onboardingPages = onboardingPages, - bottomContent = { + bottomContent = { paddingValues -> BottomContent( modifier = Modifier - .padding(it) - .consumeWindowInsets(it), + .padding(paddingValues) + .consumeWindowInsets(paddingValues), isLastPage = { isLastPage }, startMainActivity = goToMainActivity, goToNextPage = { coroutineScope.launch { pagerState.animateScrollToPage(pagerState.currentPage + 1) } }, @@ -91,7 +89,7 @@ fun OnboardingScreen(goToMainActivity: () -> Unit) { @Composable private fun Page.toOnboardingPage(isHighlighted: Map>) = OnboardingPage( background = background.image(), - illustration = { Illustration(illustration) }, + illustration = { Image(illustration.image(), contentDescription = null) }, text = { TitleAndDescription( page = this, @@ -100,11 +98,6 @@ private fun Page.toOnboardingPage(isHighlighted: Map } ) -@Composable -private fun Illustration(illustration: ThemedImage) { - Image(illustration.image(), contentDescription = null) -} - @Composable private fun TitleAndDescription(page: Page, isHighlighted: () -> Boolean) { Column(horizontalAlignment = Alignment.CenterHorizontally) { @@ -132,7 +125,7 @@ private fun BottomContent( modifier: Modifier = Modifier, isLastPage: () -> Boolean, startMainActivity: () -> Unit, - goToNextPage: () -> Unit + goToNextPage: () -> Unit, ) { Box( contentAlignment = Alignment.Center, @@ -147,6 +140,8 @@ private fun BottomContent( } } +private const val HIGHLIGHT_ANGLE = 3.0 + private enum class Page( val background: ThemedImage, val illustration: ThemedImage, @@ -161,7 +156,7 @@ private enum class Page( titleRes = R.string.onboardingStorageTitle, subtitleTemplateRes = R.string.onboardingStorageSubtitleTemplate, subtitleArgumentRes = R.string.onboardingStorageSubtitleArgument, - highlightAngleDegree = -3.0, + highlightAngleDegree = -HIGHLIGHT_ANGLE, ), EXPIRATION( background = AppIllus.RadialGradientCornerTopLeft, @@ -169,7 +164,7 @@ private enum class Page( titleRes = R.string.onboardingExpirationTitle, subtitleTemplateRes = R.string.onboardingExpirationSubtitleTemplate, subtitleArgumentRes = R.string.onboardingExpirationSubtitleArgument, - highlightAngleDegree = -3.0, + highlightAngleDegree = -HIGHLIGHT_ANGLE, ), PASSWORD( background = AppIllus.RadialGradientCornerTopRight, @@ -177,7 +172,7 @@ private enum class Page( titleRes = R.string.onboardingPasswordTitle, subtitleTemplateRes = R.string.onboardingPasswordSubtitleTemplate, subtitleArgumentRes = R.string.onboardingPasswordSubtitleArgument, - highlightAngleDegree = 3.0, + highlightAngleDegree = HIGHLIGHT_ANGLE, ), } From 6e8f3607e3867cc61d68730c66423e48a75f2fcc Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Wed, 4 Dec 2024 14:41:02 +0100 Subject: [PATCH 31/44] fix: Add missing contentDescription for onboarding next button --- Core2/src/main/res/values-de/strings.xml | 1 + Core2/src/main/res/values-es/strings.xml | 1 + Core2/src/main/res/values-fr/strings.xml | 1 + Core2/src/main/res/values-it/strings.xml | 1 + Core2/src/main/res/values/strings.xml | 1 + .../screen/onboarding/components/AnimatedOnboardingButton.kt | 5 +++-- app/src/main/res/values-de/strings.xml | 3 +-- app/src/main/res/values-es/strings.xml | 3 +-- app/src/main/res/values-fr/strings.xml | 1 - app/src/main/res/values-it/strings.xml | 3 +-- app/src/main/res/values/strings.xml | 1 - 11 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Core2/src/main/res/values-de/strings.xml b/Core2/src/main/res/values-de/strings.xml index a83c5c580..8c481e45f 100644 --- a/Core2/src/main/res/values-de/strings.xml +++ b/Core2/src/main/res/values-de/strings.xml @@ -17,5 +17,6 @@ --> Abbrechen + Weiter Wiederholen diff --git a/Core2/src/main/res/values-es/strings.xml b/Core2/src/main/res/values-es/strings.xml index 5f3b53b10..1c261f62a 100644 --- a/Core2/src/main/res/values-es/strings.xml +++ b/Core2/src/main/res/values-es/strings.xml @@ -17,5 +17,6 @@ --> Cancelar + Siguiente Reintentar diff --git a/Core2/src/main/res/values-fr/strings.xml b/Core2/src/main/res/values-fr/strings.xml index 664a675ce..a73a99d1b 100644 --- a/Core2/src/main/res/values-fr/strings.xml +++ b/Core2/src/main/res/values-fr/strings.xml @@ -17,5 +17,6 @@ --> Annuler + Suivant Réessayer diff --git a/Core2/src/main/res/values-it/strings.xml b/Core2/src/main/res/values-it/strings.xml index 347979af5..813090e89 100644 --- a/Core2/src/main/res/values-it/strings.xml +++ b/Core2/src/main/res/values-it/strings.xml @@ -17,5 +17,6 @@ --> Annulla + Avanti Riprova diff --git a/Core2/src/main/res/values/strings.xml b/Core2/src/main/res/values/strings.xml index fd61e2666..0c2093f4b 100644 --- a/Core2/src/main/res/values/strings.xml +++ b/Core2/src/main/res/values/strings.xml @@ -17,5 +17,6 @@ --> Cancel + Next Retry diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/components/AnimatedOnboardingButton.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/components/AnimatedOnboardingButton.kt index 61fd12280..73530e558 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/components/AnimatedOnboardingButton.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/components/AnimatedOnboardingButton.kt @@ -37,6 +37,7 @@ import com.infomaniak.swisstransfer.ui.theme.Dimens import com.infomaniak.swisstransfer.ui.theme.Margin import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme import com.infomaniak.swisstransfer.ui.utils.PreviewLightAndDark +import com.infomaniak.core2.R as RCore2 private const val BUTTON_ANIM_DURATION = 300 private const val BUTTON_ANIM_DELAY = BUTTON_ANIM_DURATION / 2 @@ -83,12 +84,12 @@ fun AnimatedOnboardingButton(isExpanded: () -> Boolean, onClick: () -> Unit) { Icon( modifier = Modifier.alpha(arrowVisibility), imageVector = AppImages.AppIcons.ArrowRight, - contentDescription = null + contentDescription = stringResource(RCore2.string.buttonNext), ) Text( modifier = Modifier.alpha(textVisibility), text = stringResource(id = R.string.buttonStart), - style = SwissTransferTheme.typography.bodyMedium + style = SwissTransferTheme.typography.bodyMedium, ) } } diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index fff0ce04f..e0155d923 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -23,7 +23,6 @@ Download Auswahl herunterladen Beenden - Weiter zu Teilen Starten Zurück @@ -32,7 +31,7 @@ Datei entfernen Passwort anzeigen Neuer Transfer - Heruntergeladene Übertragung : %d/%d + Heruntergeladene Übertragung: %d/%d Das Passwort muss zwischen 6 und 25 Zeichen lang sein Verfällt in %d Tagen diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index f9a087ccc..ce5f92cda 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -23,7 +23,6 @@ Descargar Descargar la selección Acabado - Siguiente Compartir Inicio Volver @@ -32,7 +31,7 @@ Eliminar archivo Mostrar contraseña Nueva transferencia - Transferencia descargada : %d/%d + Transferencia descargada: %d/%d La contraseña debe tener entre 6 y 25 caracteres Caduca en %d días diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index aa413df58..43891b4bf 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -23,7 +23,6 @@ Télécharger Télécharger la sélection Terminer - Suivant Partager Démarrer Retour diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 335ae8cc0..65b10170e 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -23,7 +23,6 @@ Scaricare Scarica la selezione Finisci - Avanti Condividi Inizio Indietro @@ -32,7 +31,7 @@ Rimuovi il file Mostra password Nuovo trasferimento - Trasferimento scaricato : %d/%d + Trasferimento scaricato: %d/%d La password deve essere compresa tra 6 e 24 caratteri Scade tra %d giorni diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e88ddadfa..536608926 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -27,7 +27,6 @@ Download Download selection Finish - Next Share Start Back From 06787b083ff2b8f66c85ff9de7a11ca12b55ffc8 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Wed, 4 Dec 2024 14:45:44 +0100 Subject: [PATCH 32/44] style: Clean code --- Core2/Onboarding/build.gradle.kts | 1 - .../library/onboarding/OnboardingScaffold.kt | 1 - .../ui/components/HighlightedText.kt | 23 ------------------- 3 files changed, 25 deletions(-) diff --git a/Core2/Onboarding/build.gradle.kts b/Core2/Onboarding/build.gradle.kts index c193cbf3a..29205fd7b 100644 --- a/Core2/Onboarding/build.gradle.kts +++ b/Core2/Onboarding/build.gradle.kts @@ -41,7 +41,6 @@ android { } dependencies { - implementation(core2.androidx.core.ktx) implementation(core2.androidx.material3.android) implementation(core2.androidx.runtime.android) diff --git a/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt b/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt index 9366a5054..33ca57cd0 100644 --- a/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt +++ b/Core2/Onboarding/src/main/java/com/infomaniak/library/onboarding/OnboardingScaffold.kt @@ -110,7 +110,6 @@ data class OnboardingPage( val text: @Composable () -> Unit, ) - @Preview @Preview(device = "spec:parent=pixel_5,orientation=landscape") @Composable diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/components/HighlightedText.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/components/HighlightedText.kt index f5d1b892e..414618e78 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/components/HighlightedText.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/components/HighlightedText.kt @@ -61,29 +61,6 @@ fun HighlightedText( horizontalPadding: Float = HORIZONTAL_PADDING, angleDegrees: Double = ROTATION_ANGLE_DEGREE, isHighlighted: () -> Boolean, -) { - HighlightedTextCore( - templateRes, - argumentRes, - style, - modifier, - verticalPadding, - horizontalPadding, - angleDegrees, - isHighlighted, - ) -} - -@Composable -private fun HighlightedTextCore( - templateRes: Int, - argumentRes: Int, - style: TextStyle, - modifier: Modifier, - verticalPadding: Float, - horizontalPadding: Float, - angleDegrees: Double, - isHighlighted: () -> Boolean, ) { val template = stringResource(templateRes) val argument = stringResource(argumentRes) From 2f628ec94c7421fe23366ab92ec38b802e11952b Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Wed, 4 Dec 2024 16:06:31 +0100 Subject: [PATCH 33/44] refactor: Introduce compose BOM to handle compose dependencies versions --- Core2/Onboarding/build.gradle.kts | 11 ++++++----- Core2/gradle/core2.versions.toml | 17 +++++++---------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/Core2/Onboarding/build.gradle.kts b/Core2/Onboarding/build.gradle.kts index 29205fd7b..18b3af0e2 100644 --- a/Core2/Onboarding/build.gradle.kts +++ b/Core2/Onboarding/build.gradle.kts @@ -41,11 +41,12 @@ android { } dependencies { + implementation(platform(core2.compose.bom)) implementation(core2.androidx.core.ktx) - implementation(core2.androidx.material3.android) - implementation(core2.androidx.runtime.android) - implementation(core2.androidx.foundation.android) - implementation(core2.androidx.ui.tooling.preview.android) + implementation(core2.compose.foundation) + implementation(core2.compose.material3) + implementation(core2.compose.runtime) + implementation(core2.compose.ui.tooling.preview) - debugImplementation(core2.androidx.ui.tooling) + debugImplementation(core2.compose.ui.tooling) } diff --git a/Core2/gradle/core2.versions.toml b/Core2/gradle/core2.versions.toml index 877fa979b..91053ecd5 100644 --- a/Core2/gradle/core2.versions.toml +++ b/Core2/gradle/core2.versions.toml @@ -1,19 +1,16 @@ [versions] coreKtx = "1.15.0" -foundationAndroid = "1.7.3" -runtimeAndroid = "1.7.5" -material3Android = "1.3.1" -uiTooling = "1.7.5" -uiToolingPreviewAndroid = "1.7.5" +composeBom = "2024.11.00" matomo = "4.1.4" sentry-android = "7.15.0" [libraries] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } -androidx-foundation-android = { group = "androidx.compose.foundation", name = "foundation-android", version.ref = "foundationAndroid" } -androidx-runtime-android = { group = "androidx.compose.runtime", name = "runtime-android", version.ref = "runtimeAndroid" } -androidx-material3-android = { group = "androidx.compose.material3", name = "material3-android", version.ref = "material3Android" } -androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling", version.ref = "uiTooling" } -androidx-ui-tooling-preview-android = { group = "androidx.compose.ui", name = "ui-tooling-preview-android", version.ref = "uiToolingPreviewAndroid" } +compose-foundation = { group = "androidx.compose.foundation", name = "foundation-android" } +compose-material3 = { group = "androidx.compose.material3", name = "material3-android" } +compose-runtime = { group = "androidx.compose.runtime", name = "runtime-android" } +compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } +compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview-android" } +compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" } matomo = { module = "com.github.matomo-org:matomo-sdk-android", version.ref = "matomo" } sentry-android = { module = "io.sentry:sentry-android", version.ref = "sentry-android" } From 0918c1e8b2b879a33bb16ed2fc695aa9acf781e7 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Wed, 4 Dec 2024 17:01:43 +0100 Subject: [PATCH 34/44] fix: Reimport illustrations with correct baked paddings --- .../RadialGradientCornerTopRightDark.kt | 1 - ...eBoxPile.kt => StorageCardboardBoxPile.kt} | 14 +- ...Dark.kt => StorageCardboardBoxPileDark.kt} | 363 +++--- ...ght.kt => StorageCardboardBoxPileLight.kt} | 496 ++++---- .../onboarding/ThreeCardsTransferTypeDark.kt | 1097 +++++++---------- .../onboarding/ThreeCardsTransferTypeLight.kt | 1092 +++++++--------- ...edStars.kt => TwoLocksIntertwinedStars.kt} | 14 +- ...ark.kt => TwoLocksIntertwinedStarsDark.kt} | 149 +-- ...ht.kt => TwoLocksIntertwinedStarsLight.kt} | 119 +- .../ui/screen/onboarding/OnboardingScreen.kt | 4 +- 10 files changed, 1366 insertions(+), 1983 deletions(-) rename app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/{StorageBoxPile.kt => StorageCardboardBoxPile.kt} (83%) rename app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/{StorageBoxPileDark.kt => StorageCardboardBoxPileDark.kt} (69%) rename app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/{StorageBoxPileLight.kt => StorageCardboardBoxPileLight.kt} (56%) rename app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/{TwoPadlocksIntertwinedStars.kt => TwoLocksIntertwinedStars.kt} (82%) rename app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/{TwoPadlocksIntertwinedStarsDark.kt => TwoLocksIntertwinedStarsDark.kt} (64%) rename app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/{TwoPadlocksIntertwinedStarsLight.kt => TwoLocksIntertwinedStarsLight.kt} (73%) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightDark.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightDark.kt index b037b7492..dc572e242 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightDark.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightDark.kt @@ -19,7 +19,6 @@ package com.infomaniak.swisstransfer.ui.images.illus.onboarding import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.runtime.Composable diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPile.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageCardboardBoxPile.kt similarity index 83% rename from app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPile.kt rename to app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageCardboardBoxPile.kt index 0faf63e1f..5217008cb 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPile.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageCardboardBoxPile.kt @@ -32,13 +32,13 @@ import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus import com.infomaniak.swisstransfer.ui.images.ThemedImage import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme -val AppIllus.StorageBoxPile: ThemedImage - get() = _storageBoxPile ?: object : ThemedImage { - override val light = AppIllus.StorageBoxPileLight - override val dark = AppIllus.StorageBoxPileDark - }.also { _storageBoxPile = it } +val AppIllus.StorageCardboardBoxPile: ThemedImage + get() = _storageCardboardBoxPile ?: object : ThemedImage { + override val light = AppIllus.StorageCardboardBoxPileLight + override val dark = AppIllus.StorageCardboardBoxPileDark + }.also { _storageCardboardBoxPile = it } -private var _storageBoxPile: ThemedImage? = null +private var _storageCardboardBoxPile: ThemedImage? = null @Preview(name = "Light") @Preview(name = "Dark", uiMode = Configuration.UI_MODE_NIGHT_YES or Configuration.UI_MODE_TYPE_NORMAL) @@ -46,7 +46,7 @@ private var _storageBoxPile: ThemedImage? = null private fun Preview() { SwissTransferTheme { Surface { - val imageVector = AppIllus.StorageBoxPile.image() + val imageVector = AppIllus.StorageCardboardBoxPile.image() Box { Image( imageVector = imageVector, diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPileDark.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageCardboardBoxPileDark.kt similarity index 69% rename from app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPileDark.kt rename to app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageCardboardBoxPileDark.kt index 447b81d7a..d8560d129 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPileDark.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageCardboardBoxPileDark.kt @@ -1,3 +1,20 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package com.infomaniak.swisstransfer.ui.images.illus.onboarding import androidx.compose.foundation.Image @@ -22,172 +39,156 @@ import androidx.compose.ui.unit.dp import com.infomaniak.swisstransfer.ui.images.AppImages import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus -val AppIllus.StorageBoxPileDark: ImageVector +val AppIllus.StorageCardboardBoxPileDark: ImageVector get() { - if (_storageBoxPileDark != null) { - return _storageBoxPileDark!! + if (_storageCardboardBoxPileDark != null) { + return _storageCardboardBoxPileDark!! } - _storageBoxPileDark = Builder( - name = "StorageBoxPileDark", - defaultWidth = 289.0.dp, + _storageCardboardBoxPileDark = Builder( + name = "StorageCardboardBoxPileDark", + defaultWidth = 375.0.dp, defaultHeight = 258.0.dp, - viewportWidth = 289.0f, + viewportWidth = 375.0f, viewportHeight = 258.0f ).apply { - path( - fill = SolidColor(Color(0xFFA98116)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = EvenOdd - ) { - moveTo(97.98f, 94.05f) - curveToRelative(0.78f, 0.68f, 3.34f, 1.72f, 4.57f, 1.98f) - curveToRelative(-1.29f, -0.57f, -3.01f, -1.2f, -3.95f, -1.99f) - curveToRelative(-4.49f, -3.76f, -1.84f, -10.04f, 3.95f, -9.12f) - curveToRelative(1.06f, 0.17f, 2.86f, 1.02f, 4.31f, 1.73f) - curveToRelative(-0.97f, -0.69f, -3.81f, -2.05f, -4.84f, -2.28f) - curveToRelative(-4.83f, -1.07f, -9.7f, 4.74f, -4.04f, 9.68f) + group { + path( + fill = SolidColor(Color(0xFFA98116)), + pathFillType = EvenOdd + ) { + moveTo(140.98f, 94.2f) + curveToRelative(0.78f, 0.68f, 3.34f, 1.73f, 4.57f, 1.98f) + curveToRelative(-1.29f, -0.57f, -3.01f, -1.2f, -3.95f, -1.99f) + curveToRelative(-4.49f, -3.77f, -1.84f, -10.06f, 3.95f, -9.14f) + curveToRelative(1.06f, 0.17f, 2.86f, 1.02f, 4.31f, 1.73f) + curveToRelative(-0.97f, -0.69f, -3.81f, -2.05f, -4.84f, -2.28f) + curveToRelative(-4.83f, -1.08f, -9.7f, 4.74f, -4.04f, 9.69f) + } } group { path( fill = SolidColor(Color(0xFFFFFFFF)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(97.98f, 94.05f) + moveToRelative(140.98f, 94.2f) lineToRelative(0.66f, -0.75f) + horizontalLineToRelative(-0.0f) close() - moveTo(102.55f, 96.03f) - lineTo(102.34f, 97.01f) - lineTo(102.95f, 95.12f) + moveTo(145.55f, 96.18f) + lineTo(145.35f, 97.16f) + lineTo(145.95f, 95.27f) close() - moveTo(98.6f, 94.04f) - lineToRelative(-0.64f, 0.77f) - horizontalLineToRelative(0.0f) + moveTo(141.6f, 94.19f) + lineTo(140.96f, 94.96f) + lineTo(140.96f, 94.96f) close() - moveTo(102.56f, 84.92f) - lineTo(102.71f, 83.93f) + moveTo(145.55f, 85.06f) + lineTo(145.71f, 84.07f) close() - moveTo(106.86f, 86.65f) - lineTo(106.42f, 87.55f) - lineTo(107.44f, 85.84f) + moveTo(149.86f, 86.79f) + lineTo(149.42f, 87.69f) + lineTo(150.44f, 85.98f) close() - moveTo(102.02f, 84.37f) - lineTo(101.81f, 85.35f) + moveTo(145.02f, 84.51f) + lineTo(144.81f, 85.48f) close() - moveTo(97.32f, 94.8f) + moveTo(140.32f, 94.96f) curveToRelative(0.52f, 0.46f, 1.5f, 0.94f, 2.38f, 1.32f) curveToRelative(0.92f, 0.39f, 1.93f, 0.74f, 2.64f, 0.89f) lineToRelative(0.41f, -1.96f) curveToRelative(-0.52f, -0.11f, -1.4f, -0.41f, -2.27f, -0.77f) curveToRelative(-0.9f, -0.38f, -1.59f, -0.76f, -1.85f, -0.98f) close() - moveTo(102.95f, 95.12f) + moveTo(145.95f, 95.27f) curveToRelative(-0.7f, -0.31f, -1.38f, -0.58f, -2.09f, -0.9f) curveToRelative(-0.69f, -0.32f, -1.26f, -0.63f, -1.62f, -0.94f) lineToRelative(-1.28f, 1.53f) - curveToRelative(0.58f, 0.48f, 1.34f, 0.88f, 2.07f, 1.22f) + curveToRelative(0.58f, 0.48f, 1.34f, 0.88f, 2.06f, 1.22f) curveToRelative(0.71f, 0.33f, 1.53f, 0.66f, 2.12f, 0.92f) close() - moveTo(99.24f, 93.28f) - curveToRelative(-1.94f, -1.63f, -2.24f, -3.67f, -1.6f, -5.16f) - curveToRelative(0.63f, -1.47f, 2.27f, -2.61f, 4.76f, -2.21f) - lineToRelative(0.31f, -1.97f) - curveToRelative(-3.31f, -0.52f, -5.89f, 1.02f, -6.91f, 3.4f) - curveToRelative(-1.01f, 2.37f, -0.4f, 5.34f, 2.15f, 7.48f) + moveTo(142.24f, 93.43f) + curveToRelative(-1.94f, -1.63f, -2.24f, -3.68f, -1.6f, -5.17f) + curveToRelative(0.63f, -1.47f, 2.27f, -2.61f, 4.76f, -2.22f) + lineToRelative(0.31f, -1.98f) + curveToRelative(-3.31f, -0.53f, -5.89f, 1.02f, -6.91f, 3.4f) + curveToRelative(-1.01f, 2.37f, -0.4f, 5.35f, 2.15f, 7.49f) close() - moveTo(102.4f, 85.91f) - curveToRelative(0.4f, 0.06f, 1.02f, 0.28f, 1.77f, 0.59f) - curveToRelative(0.74f, 0.31f, 1.53f, 0.69f, 2.24f, 1.05f) + moveTo(145.4f, 86.04f) + curveToRelative(0.4f, 0.06f, 1.02f, 0.28f, 1.78f, 0.6f) + arcToRelative(43.0f, 43.0f, 0.0f, false, true, 2.24f, 1.05f) lineToRelative(0.89f, -1.79f) arcToRelative(45.0f, 45.0f, 0.0f, false, false, -2.35f, -1.1f) - curveToRelative(-0.77f, -0.32f, -1.58f, -0.62f, -2.24f, -0.73f) + curveToRelative(-0.77f, -0.33f, -1.58f, -0.62f, -2.24f, -0.73f) close() - moveTo(107.44f, 85.84f) + moveTo(150.44f, 85.98f) curveToRelative(-0.56f, -0.4f, -1.58f, -0.94f, -2.55f, -1.4f) curveToRelative(-0.95f, -0.45f, -2.02f, -0.9f, -2.65f, -1.04f) lineToRelative(-0.43f, 1.95f) curveToRelative(0.39f, 0.09f, 1.26f, 0.44f, 2.23f, 0.89f) - curveToRelative(0.95f, 0.45f, 1.84f, 0.93f, 2.25f, 1.22f) + curveToRelative(0.95f, 0.45f, 1.84f, 0.94f, 2.25f, 1.23f) close() - moveTo(102.24f, 83.4f) - curveToRelative(-2.85f, -0.63f, -5.71f, 0.76f, -7.04f, 3.06f) - arcToRelative(5.65f, 5.65f, 0.0f, false, false, -0.63f, 4.06f) - curveToRelative(0.32f, 1.48f, 1.21f, 2.94f, 2.76f, 4.29f) + moveTo(145.24f, 83.53f) + curveToRelative(-2.85f, -0.63f, -5.71f, 0.76f, -7.04f, 3.07f) + arcToRelative(5.67f, 5.67f, 0.0f, false, false, -0.63f, 4.06f) + curveToRelative(0.32f, 1.48f, 1.21f, 2.95f, 2.75f, 4.3f) lineToRelative(1.31f, -1.51f) - curveToRelative(-1.29f, -1.13f, -1.91f, -2.23f, -2.12f, -3.21f) - arcToRelative(3.66f, 3.66f, 0.0f, false, true, 0.41f, -2.64f) + curveToRelative(-1.29f, -1.13f, -1.91f, -2.24f, -2.12f, -3.21f) + arcToRelative(3.67f, 3.67f, 0.0f, false, true, 0.41f, -2.64f) curveToRelative(0.9f, -1.57f, 2.9f, -2.55f, 4.87f, -2.11f) close() } path( fill = SolidColor(Color(0xFFA98116)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = EvenOdd ) { - moveTo(113.15f, 103.25f) - curveToRelative(-0.14f, -0.05f, -10.5f, 3.16f, -7.58f, 7.85f) - curveToRelative(-0.47f, -2.07f, 0.5f, -4.47f, 7.58f, -7.85f) + moveTo(156.15f, 103.41f) + curveToRelative(-0.14f, -0.05f, -10.5f, 3.16f, -7.58f, 7.87f) + curveToRelative(-0.47f, -2.07f, 0.5f, -4.48f, 7.58f, -7.87f) } } group { path( fill = SolidColor(Color(0xFFFFFFFF)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(113.15f, 103.25f) + moveToRelative(156.15f, 103.41f) lineToRelative(0.43f, 0.9f) lineToRelative(2.04f, -0.97f) - lineToRelative(-2.09f, -0.85f) - close() - moveTo(105.56f, 111.1f) - lineTo(104.71f, 111.63f) - lineTo(106.54f, 110.88f) - close() - moveTo(113.53f, 102.32f) - curveToRelative(-0.18f, -0.08f, -0.34f, -0.08f, -0.37f, -0.08f) - arcToRelative(1.15f, 1.15f, 0.0f, false, false, -0.24f, 0.02f) - quadToRelative(-0.08f, 0.02f, -0.16f, 0.04f) - arcToRelative(8.0f, 8.0f, 0.0f, false, false, -0.39f, 0.12f) + lineToRelative(-2.09f, -0.86f) + close() + moveTo(148.56f, 111.27f) + lineTo(147.71f, 111.8f) + lineTo(149.54f, 111.05f) + close() + moveTo(156.53f, 102.48f) + curveToRelative(-0.18f, -0.08f, -0.34f, -0.07f, -0.37f, -0.08f) + curveToRelative(-0.06f, 0.0f, -0.1f, 0.0f, -0.13f, 0.01f) + curveToRelative(-0.05f, 0.0f, -0.09f, 0.01f, -0.12f, 0.02f) + lineToRelative(-0.16f, 0.04f) + curveToRelative(-0.1f, 0.03f, -0.24f, 0.07f, -0.39f, 0.12f) curveToRelative(-0.31f, 0.1f, -0.74f, 0.25f, -1.23f, 0.44f) - curveToRelative(-0.98f, 0.38f, -2.26f, 0.95f, -3.45f, 1.68f) + curveToRelative(-0.98f, 0.38f, -2.26f, 0.95f, -3.44f, 1.68f) curveToRelative(-1.17f, 0.72f, -2.36f, 1.67f, -3.05f, 2.84f) - curveToRelative(-0.35f, 0.6f, -0.58f, 1.28f, -0.59f, 2.02f) - curveToRelative(-0.01f, 0.75f, 0.22f, 1.5f, 0.67f, 2.22f) + curveToRelative(-0.35f, 0.6f, -0.58f, 1.28f, -0.59f, 2.03f) + curveToRelative(-0.01f, 0.75f, 0.22f, 1.5f, 0.67f, 2.23f) lineToRelative(1.7f, -1.05f) curveToRelative(-0.28f, -0.45f, -0.37f, -0.83f, -0.37f, -1.15f) curveToRelative(0.0f, -0.33f, 0.1f, -0.67f, 0.32f, -1.03f) - curveToRelative(0.44f, -0.75f, 1.3f, -1.49f, 2.37f, -2.15f) + curveToRelative(0.44f, -0.75f, 1.3f, -1.49f, 2.38f, -2.15f) curveToRelative(1.05f, -0.65f, 2.21f, -1.17f, 3.12f, -1.52f) curveToRelative(0.45f, -0.18f, 0.84f, -0.31f, 1.11f, -0.39f) quadToRelative(0.2f, -0.06f, 0.3f, -0.09f) lineToRelative(0.04f, -0.01f) - curveToRelative(-0.0f, 0.0f, -0.03f, 0.0f, -0.06f, 0.01f) - arcToRelative(1.0f, 1.0f, 0.0f, false, true, -0.11f, 0.0f) + reflectiveCurveToRelative(-0.02f, 0.0f, -0.06f, 0.01f) + curveToRelative(-0.02f, 0.0f, -0.06f, 0.0f, -0.11f, 0.0f) curveToRelative(-0.02f, 0.0f, -0.18f, 0.0f, -0.36f, -0.07f) close() - moveTo(106.54f, 110.88f) + moveTo(149.54f, 111.05f) arcToRelative(2.5f, 2.5f, 0.0f, false, true, -0.01f, -1.17f) curveToRelative(0.09f, -0.39f, 0.31f, -0.86f, 0.76f, -1.4f) - curveToRelative(0.93f, -1.12f, 2.79f, -2.49f, 6.29f, -4.16f) + curveToRelative(0.93f, -1.12f, 2.79f, -2.49f, 6.29f, -4.17f) lineToRelative(-0.86f, -1.8f) - curveToRelative(-3.58f, 1.71f, -5.75f, 3.23f, -6.96f, 4.68f) + curveToRelative(-3.58f, 1.71f, -5.75f, 3.24f, -6.96f, 4.69f) curveToRelative(-0.62f, 0.74f, -1.0f, 1.48f, -1.17f, 2.22f) arcToRelative(4.5f, 4.5f, 0.0f, false, false, 0.01f, 2.08f) close() @@ -201,10 +202,10 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(106.44f, 145.42f) + moveTo(149.44f, 145.65f) verticalLineTo(0.5f) horizontalLineToRelative(105.94f) - verticalLineToRelative(144.92f) + verticalLineToRelative(145.15f) close() } path( @@ -216,38 +217,28 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(70.46f, 145.42f) + moveTo(113.46f, 145.65f) verticalLineTo(0.5f) horizontalLineToRelative(105.94f) - verticalLineToRelative(144.92f) + verticalLineToRelative(145.15f) close() } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(155.12f, 46.3f) - horizontalLineTo(81.01f) - verticalLineTo(68.47f) + moveTo(198.12f, 46.37f) + horizontalLineToRelative(-74.11f) + verticalLineToRelative(22.21f) horizontalLineToRelative(74.11f) close() } path( fill = SolidColor(Color(0xFFFFFFFF)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(104.53f, 58.89f) - curveToRelative(0.0f, -1.56f, -1.09f, -2.24f, -2.12f, -2.24f) + moveTo(147.52f, 58.97f) + curveToRelative(0.0f, -1.56f, -1.09f, -2.23f, -2.12f, -2.23f) curveToRelative(-0.97f, 0.0f, -1.61f, 0.57f, -1.82f, 1.04f) lineToRelative(-1.18f, -0.06f) lineToRelative(0.61f, -5.07f) @@ -280,7 +271,7 @@ val AppIllus.StorageBoxPileDark: ImageVector curveToRelative(1.26f, 0.0f, 2.78f, -0.52f, 2.78f, -2.47f) verticalLineToRelative(-0.25f) horizontalLineToRelative(-2.49f) - verticalLineToRelative(-1.14f) + lineTo(166.32f, 57.25f) horizontalLineToRelative(3.74f) verticalLineToRelative(4.81f) horizontalLineToRelative(-1.04f) @@ -297,29 +288,24 @@ val AppIllus.StorageBoxPileDark: ImageVector curveToRelative(0.0f, 2.0f, -1.49f, 2.78f, -3.38f, 2.78f) horizontalLineToRelative(-3.72f) close() - moveTo(130.5f, 56.59f) + moveTo(173.5f, 56.67f) horizontalLineToRelative(2.27f) curveToRelative(1.08f, 0.0f, 1.77f, -0.41f, 1.77f, -1.52f) curveToRelative(0.0f, -0.96f, -0.71f, -1.39f, -1.77f, -1.39f) horizontalLineToRelative(-2.27f) close() - moveTo(130.5f, 60.86f) + moveTo(173.5f, 60.94f) horizontalLineToRelative(2.4f) curveToRelative(1.34f, 0.0f, 2.0f, -0.58f, 2.0f, -1.65f) - curveToRelative(0.0f, -1.11f, -0.66f, -1.57f, -2.08f, -1.57f) + curveToRelative(0.0f, -1.1f, -0.66f, -1.57f, -2.08f, -1.57f) horizontalLineToRelative(-2.33f) close() } path( fill = SolidColor(Color(0xFF67DD95)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(75.86f, 57.21f) + moveTo(118.86f, 57.31f) verticalLineToRelative(1.71f) horizontalLineToRelative(1.56f) verticalLineToRelative(1.22f) @@ -334,7 +320,7 @@ val AppIllus.StorageBoxPileDark: ImageVector horizontalLineToRelative(-1.56f) verticalLineToRelative(1.71f) horizontalLineToRelative(15.31f) - verticalLineTo(66.0f) + verticalLineToRelative(-1.71f) horizontalLineToRelative(-1.56f) verticalLineToRelative(-1.22f) horizontalLineToRelative(1.56f) @@ -348,7 +334,7 @@ val AppIllus.StorageBoxPileDark: ImageVector horizontalLineToRelative(1.56f) verticalLineToRelative(-1.71f) close() - moveTo(144.31f, 52.14f) + moveTo(187.31f, 52.22f) verticalLineToRelative(1.71f) horizontalLineToRelative(1.56f) verticalLineToRelative(1.22f) @@ -357,15 +343,15 @@ val AppIllus.StorageBoxPileDark: ImageVector horizontalLineToRelative(1.56f) verticalLineToRelative(1.22f) horizontalLineToRelative(-1.56f) - verticalLineToRelative(1.71f) + verticalLineTo(59.8f) horizontalLineToRelative(1.56f) verticalLineToRelative(1.22f) horizontalLineToRelative(-1.56f) verticalLineToRelative(1.71f) horizontalLineToRelative(15.31f) - verticalLineToRelative(-1.71f) + verticalLineTo(61.02f) horizontalLineToRelative(-1.56f) - verticalLineToRelative(-1.22f) + verticalLineTo(59.8f) horizontalLineToRelative(1.56f) verticalLineToRelative(-1.71f) horizontalLineToRelative(-1.56f) @@ -387,10 +373,10 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(54.61f, 244.98f) - verticalLineTo(145.14f) + moveTo(97.61f, 245.37f) + verticalLineTo(145.37f) horizontalLineToRelative(104.72f) - verticalLineToRelative(99.84f) + verticalLineToRelative(100.0f) close() } path( @@ -402,59 +388,44 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(18.74f, 244.98f) - verticalLineTo(145.14f) + moveTo(61.74f, 245.37f) + verticalLineTo(145.37f) horizontalLineToRelative(104.72f) - verticalLineToRelative(99.84f) + verticalLineToRelative(100.0f) close() } path( fill = SolidColor(Color(0xFF152123)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(123.0f, 183.0f) - horizontalLineTo(19.0f) - verticalLineToRelative(17.0f) + moveTo(166.0f, 183.29f) + horizontalLineTo(62.0f) + verticalLineToRelative(17.03f) horizontalLineToRelative(104.0f) close() - moveTo(146.0f, 183.0f) + moveTo(189.0f, 183.29f) horizontalLineToRelative(-22.0f) - verticalLineToRelative(17.0f) + verticalLineToRelative(17.03f) horizontalLineToRelative(22.0f) close() } path( fill = SolidColor(Color(0xFF67DD95)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(46.26f, 157.37f) - horizontalLineTo(27.23f) - verticalLineToRelative(9.16f) + moveTo(89.26f, 157.61f) + horizontalLineTo(70.23f) + verticalLineToRelative(9.18f) horizontalLineToRelative(19.02f) close() } path( fill = SolidColor(Color(0xFF152123)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(46.26f, 157.37f) - horizontalLineTo(30.01f) - verticalLineToRelative(9.16f) + moveTo(89.26f, 157.61f) + horizontalLineTo(73.01f) + verticalLineToRelative(9.18f) horizontalLineToRelative(16.24f) close() } @@ -467,39 +438,29 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(146.41f, 135.66f) + moveTo(189.41f, 135.87f) horizontalLineToRelative(69.04f) - verticalLineToRelative(120.83f) + verticalLineToRelative(121.03f) horizontalLineToRelative(-69.04f) close() } path( fill = SolidColor(Color(0xFF67DD95)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(210.15f, 151.46f) + moveTo(253.15f, 151.7f) horizontalLineToRelative(-20.47f) - verticalLineToRelative(9.36f) + verticalLineToRelative(9.38f) horizontalLineToRelative(20.47f) close() } path( fill = SolidColor(Color(0xFF152123)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(210.15f, 151.46f) + moveTo(253.15f, 151.7f) horizontalLineToRelative(-15.24f) - verticalLineToRelative(9.36f) + verticalLineToRelative(9.38f) horizontalLineToRelative(15.24f) close() } @@ -512,9 +473,9 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(215.72f, 135.66f) + moveTo(258.72f, 135.87f) horizontalLineToRelative(34.75f) - verticalLineToRelative(120.83f) + verticalLineToRelative(121.03f) horizontalLineToRelative(-34.75f) close() } @@ -527,10 +488,10 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(7.8f, 203.5f) + moveTo(50.79f, 203.83f) horizontalLineToRelative(109.89f) - verticalLineToRelative(52.99f) - horizontalLineTo(7.8f) + verticalLineToRelative(53.07f) + horizontalLineTo(50.79f) close() } path( @@ -542,10 +503,10 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(0.69f, 224.39f) - lineToRelative(6.96f, -20.89f) + moveToRelative(43.69f, 224.75f) + lineToRelative(6.96f, -20.92f) horizontalLineToRelative(109.84f) - lineToRelative(-6.96f, 20.89f) + lineToRelative(-6.96f, 20.92f) close() } path( @@ -557,9 +518,9 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(117.96f, 203.5f) + moveTo(160.96f, 203.83f) horizontalLineToRelative(48.61f) - verticalLineToRelative(52.99f) + verticalLineToRelative(53.07f) horizontalLineToRelative(-48.61f) close() } @@ -572,10 +533,10 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(125.11f, 224.39f) - lineToRelative(-6.96f, -20.89f) + moveToRelative(168.11f, 224.75f) + lineToRelative(-6.96f, -20.92f) horizontalLineToRelative(48.56f) - lineToRelative(6.96f, 20.89f) + lineToRelative(6.96f, 20.92f) close() } path( @@ -587,10 +548,10 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(219.15f, 257.09f) - verticalLineToRelative(-23.72f) + moveTo(262.15f, 257.5f) + verticalLineToRelative(-23.76f) horizontalLineToRelative(69.35f) - verticalLineToRelative(23.72f) + verticalLineToRelative(23.76f) close() } path( @@ -602,23 +563,23 @@ val AppIllus.StorageBoxPileDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(195.29f, 257.09f) - verticalLineToRelative(-23.72f) + moveTo(238.29f, 257.5f) + verticalLineToRelative(-23.76f) horizontalLineToRelative(69.35f) - verticalLineToRelative(23.72f) + verticalLineToRelative(23.76f) close() } } }.build() - return _storageBoxPileDark!! + return _storageCardboardBoxPileDark!! } -private var _storageBoxPileDark: ImageVector? = null +private var _storageCardboardBoxPileDark: ImageVector? = null @Preview @Composable private fun Preview() { - val imageVector = AppIllus.StorageBoxPileDark + val imageVector = AppIllus.StorageCardboardBoxPileDark Box { Image( imageVector = imageVector, diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPileLight.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageCardboardBoxPileLight.kt similarity index 56% rename from app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPileLight.kt rename to app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageCardboardBoxPileLight.kt index d7553fc1e..d9cd16c25 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageBoxPileLight.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageCardboardBoxPileLight.kt @@ -1,3 +1,20 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package com.infomaniak.swisstransfer.ui.images.illus.onboarding import androidx.compose.foundation.Image @@ -22,173 +39,154 @@ import androidx.compose.ui.unit.dp import com.infomaniak.swisstransfer.ui.images.AppImages import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus -val AppIllus.StorageBoxPileLight: ImageVector +val AppIllus.StorageCardboardBoxPileLight: ImageVector get() { - if (_storageBoxPileLight != null) { - return _storageBoxPileLight!! + if (_storageCardboardBoxPileLight != null) { + return _storageCardboardBoxPileLight!! } - _storageBoxPileLight = Builder( - name = "StorageBoxPileLight", - defaultWidth = 290.0.dp, + _storageCardboardBoxPileLight = Builder( + name = "StorageCardboardBoxPileLight", + defaultWidth = 375.0.dp, defaultHeight = 258.0.dp, - viewportWidth = 290.0f, + viewportWidth = 375.0f, viewportHeight = 258.0f ).apply { path( fill = SolidColor(Color(0xFFA98116)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = EvenOdd ) { - moveTo(98.03f, 94.1f) - curveToRelative(0.78f, 0.68f, 3.34f, 1.72f, 4.57f, 1.98f) - curveToRelative(-1.3f, -0.57f, -3.01f, -1.2f, -3.95f, -1.99f) - curveToRelative(-4.49f, -3.77f, -1.84f, -10.05f, 3.96f, -9.13f) + moveTo(140.98f, 94.2f) + curveToRelative(0.78f, 0.68f, 3.34f, 1.73f, 4.57f, 1.98f) + curveToRelative(-1.29f, -0.57f, -3.01f, -1.2f, -3.95f, -1.99f) + curveToRelative(-4.49f, -3.77f, -1.84f, -10.06f, 3.95f, -9.14f) curveToRelative(1.06f, 0.17f, 2.86f, 1.02f, 4.31f, 1.73f) - curveToRelative(-0.97f, -0.69f, -3.82f, -2.05f, -4.84f, -2.28f) - curveToRelative(-4.83f, -1.07f, -9.71f, 4.74f, -4.05f, 9.68f) + curveToRelative(-0.97f, -0.69f, -3.81f, -2.05f, -4.84f, -2.28f) + curveToRelative(-4.83f, -1.08f, -9.7f, 4.74f, -4.04f, 9.69f) } group { path( fill = SolidColor(Color(0xFFFFFFFF)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(98.03f, 94.1f) + moveToRelative(140.98f, 94.2f) lineToRelative(0.66f, -0.75f) + horizontalLineToRelative(-0.0f) close() - moveTo(102.6f, 96.08f) - lineTo(102.4f, 97.06f) - lineTo(103.01f, 95.17f) + moveTo(145.55f, 96.18f) + lineTo(145.34f, 97.16f) + lineTo(145.95f, 95.27f) close() - moveTo(98.65f, 94.1f) - lineTo(98.01f, 94.86f) - lineTo(98.01f, 94.86f) + moveTo(141.6f, 94.19f) + lineTo(140.96f, 94.96f) + lineTo(140.96f, 94.96f) close() - moveTo(102.61f, 84.97f) - lineTo(102.77f, 83.98f) + moveTo(145.55f, 85.06f) + lineTo(145.71f, 84.07f) close() - moveTo(106.92f, 86.7f) - lineTo(106.48f, 87.6f) - lineTo(107.5f, 85.88f) + moveTo(149.86f, 86.79f) + lineTo(149.42f, 87.69f) + lineTo(150.44f, 85.97f) close() - moveTo(102.08f, 84.42f) - lineTo(101.86f, 85.39f) - horizontalLineToRelative(0.0f) + moveTo(145.02f, 84.51f) + lineTo(144.8f, 85.48f) close() - moveTo(97.37f, 94.86f) - curveToRelative(0.52f, 0.46f, 1.5f, 0.94f, 2.39f, 1.32f) + moveTo(140.32f, 94.95f) + curveToRelative(0.52f, 0.46f, 1.5f, 0.94f, 2.38f, 1.32f) curveToRelative(0.92f, 0.39f, 1.93f, 0.74f, 2.64f, 0.89f) lineToRelative(0.41f, -1.96f) curveToRelative(-0.52f, -0.11f, -1.4f, -0.41f, -2.27f, -0.77f) curveToRelative(-0.9f, -0.38f, -1.59f, -0.76f, -1.85f, -0.98f) close() - moveTo(103.01f, 95.17f) + moveTo(145.95f, 95.27f) curveToRelative(-0.7f, -0.31f, -1.38f, -0.58f, -2.09f, -0.9f) curveToRelative(-0.69f, -0.32f, -1.26f, -0.63f, -1.62f, -0.94f) lineToRelative(-1.28f, 1.53f) - curveToRelative(0.58f, 0.48f, 1.34f, 0.88f, 2.07f, 1.22f) - curveToRelative(0.71f, 0.33f, 1.53f, 0.66f, 2.13f, 0.92f) + curveToRelative(0.58f, 0.48f, 1.34f, 0.88f, 2.06f, 1.22f) + curveToRelative(0.71f, 0.33f, 1.53f, 0.66f, 2.12f, 0.92f) close() - moveTo(99.3f, 93.33f) - curveToRelative(-1.94f, -1.63f, -2.24f, -3.68f, -1.6f, -5.16f) - curveToRelative(0.63f, -1.47f, 2.28f, -2.61f, 4.76f, -2.21f) + moveTo(142.24f, 93.43f) + curveToRelative(-1.94f, -1.63f, -2.24f, -3.68f, -1.6f, -5.17f) + curveToRelative(0.63f, -1.47f, 2.27f, -2.61f, 4.76f, -2.22f) lineToRelative(0.31f, -1.98f) - curveToRelative(-3.31f, -0.52f, -5.89f, 1.02f, -6.91f, 3.4f) - curveToRelative(-1.02f, 2.37f, -0.4f, 5.34f, 2.15f, 7.48f) + curveToRelative(-3.31f, -0.53f, -5.89f, 1.02f, -6.91f, 3.4f) + curveToRelative(-1.01f, 2.37f, -0.4f, 5.35f, 2.15f, 7.49f) close() - moveTo(102.45f, 85.95f) - curveToRelative(0.4f, 0.06f, 1.02f, 0.27f, 1.78f, 0.59f) - curveToRelative(0.74f, 0.31f, 1.53f, 0.69f, 2.25f, 1.05f) + moveTo(145.4f, 86.04f) + curveToRelative(0.4f, 0.06f, 1.02f, 0.28f, 1.78f, 0.6f) + arcToRelative(43.0f, 43.0f, 0.0f, false, true, 2.24f, 1.05f) lineToRelative(0.89f, -1.79f) - arcToRelative(45.0f, 45.0f, 0.0f, false, false, -2.36f, -1.1f) - curveToRelative(-0.77f, -0.32f, -1.58f, -0.62f, -2.24f, -0.73f) + arcToRelative(45.0f, 45.0f, 0.0f, false, false, -2.35f, -1.1f) + curveToRelative(-0.77f, -0.33f, -1.58f, -0.62f, -2.24f, -0.73f) close() - moveTo(107.5f, 85.88f) + moveTo(150.44f, 85.97f) curveToRelative(-0.56f, -0.4f, -1.58f, -0.94f, -2.55f, -1.4f) - curveToRelative(-0.95f, -0.45f, -2.02f, -0.9f, -2.66f, -1.04f) + curveToRelative(-0.95f, -0.45f, -2.02f, -0.9f, -2.65f, -1.04f) lineToRelative(-0.43f, 1.95f) curveToRelative(0.39f, 0.09f, 1.26f, 0.44f, 2.23f, 0.89f) - curveToRelative(0.95f, 0.45f, 1.84f, 0.93f, 2.25f, 1.22f) + curveToRelative(0.95f, 0.45f, 1.84f, 0.94f, 2.25f, 1.23f) close() - moveTo(102.29f, 83.44f) - curveToRelative(-2.86f, -0.63f, -5.72f, 0.76f, -7.04f, 3.06f) - arcToRelative(5.66f, 5.66f, 0.0f, false, false, -0.63f, 4.06f) - curveToRelative(0.32f, 1.48f, 1.21f, 2.95f, 2.76f, 4.29f) - lineToRelative(1.32f, -1.51f) + moveTo(145.24f, 83.53f) + curveToRelative(-2.85f, -0.63f, -5.71f, 0.76f, -7.04f, 3.07f) + arcToRelative(5.67f, 5.67f, 0.0f, false, false, -0.63f, 4.06f) + curveToRelative(0.32f, 1.48f, 1.21f, 2.95f, 2.75f, 4.3f) + lineToRelative(1.31f, -1.51f) curveToRelative(-1.29f, -1.13f, -1.91f, -2.24f, -2.12f, -3.21f) - arcToRelative(3.66f, 3.66f, 0.0f, false, true, 0.41f, -2.64f) - curveToRelative(0.9f, -1.57f, 2.9f, -2.55f, 4.88f, -2.11f) + arcToRelative(3.67f, 3.67f, 0.0f, false, true, 0.41f, -2.64f) + curveToRelative(0.9f, -1.57f, 2.9f, -2.55f, 4.87f, -2.11f) close() } path( fill = SolidColor(Color(0xFFA98116)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = EvenOdd ) { - moveTo(113.21f, 103.3f) - curveToRelative(-0.14f, -0.05f, -10.5f, 3.16f, -7.59f, 7.86f) - curveToRelative(-0.47f, -2.07f, 0.5f, -4.47f, 7.59f, -7.86f) + moveTo(156.15f, 103.41f) + curveToRelative(-0.14f, -0.05f, -10.5f, 3.16f, -7.58f, 7.87f) + curveToRelative(-0.47f, -2.07f, 0.5f, -4.48f, 7.58f, -7.87f) } } group { path( fill = SolidColor(Color(0xFFFFFFFF)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(113.21f, 103.3f) + moveToRelative(156.15f, 103.41f) lineToRelative(0.43f, 0.9f) lineToRelative(2.04f, -0.97f) - lineToRelative(-2.09f, -0.85f) - close() - moveTo(105.62f, 111.16f) - lineTo(104.77f, 111.69f) - lineTo(106.6f, 110.94f) - close() - moveTo(113.59f, 102.38f) - curveToRelative(-0.18f, -0.08f, -0.34f, -0.08f, -0.37f, -0.08f) - arcToRelative(1.15f, 1.15f, 0.0f, false, false, -0.24f, 0.02f) - arcToRelative(2.0f, 2.0f, 0.0f, false, false, -0.16f, 0.04f) - arcToRelative(8.0f, 8.0f, 0.0f, false, false, -0.39f, 0.12f) + lineToRelative(-2.09f, -0.86f) + close() + moveTo(148.56f, 111.27f) + lineTo(147.71f, 111.8f) + lineTo(149.54f, 111.05f) + close() + moveTo(156.53f, 102.48f) + curveToRelative(-0.18f, -0.08f, -0.34f, -0.07f, -0.37f, -0.08f) + curveToRelative(-0.06f, 0.0f, -0.1f, 0.0f, -0.13f, 0.01f) + curveToRelative(-0.05f, 0.0f, -0.09f, 0.01f, -0.12f, 0.02f) + lineToRelative(-0.16f, 0.04f) + curveToRelative(-0.1f, 0.03f, -0.24f, 0.07f, -0.39f, 0.12f) curveToRelative(-0.31f, 0.1f, -0.74f, 0.25f, -1.23f, 0.44f) - curveToRelative(-0.98f, 0.38f, -2.26f, 0.95f, -3.45f, 1.68f) + curveToRelative(-0.98f, 0.38f, -2.26f, 0.95f, -3.44f, 1.68f) curveToRelative(-1.17f, 0.72f, -2.36f, 1.67f, -3.05f, 2.84f) curveToRelative(-0.35f, 0.6f, -0.58f, 1.28f, -0.59f, 2.03f) - curveToRelative(-0.01f, 0.75f, 0.22f, 1.5f, 0.67f, 2.22f) + curveToRelative(-0.01f, 0.75f, 0.22f, 1.5f, 0.67f, 2.23f) lineToRelative(1.7f, -1.05f) curveToRelative(-0.28f, -0.45f, -0.37f, -0.83f, -0.37f, -1.15f) curveToRelative(0.0f, -0.33f, 0.1f, -0.67f, 0.32f, -1.03f) curveToRelative(0.44f, -0.75f, 1.3f, -1.49f, 2.38f, -2.15f) curveToRelative(1.05f, -0.65f, 2.21f, -1.17f, 3.12f, -1.52f) - arcToRelative(19.0f, 19.0f, 0.0f, false, true, 1.11f, -0.39f) + curveToRelative(0.45f, -0.18f, 0.84f, -0.31f, 1.11f, -0.39f) quadToRelative(0.2f, -0.06f, 0.3f, -0.09f) lineToRelative(0.04f, -0.01f) - curveToRelative(-0.0f, 0.0f, -0.03f, 0.0f, -0.06f, 0.01f) - arcToRelative(1.0f, 1.0f, 0.0f, false, true, -0.11f, 0.0f) + reflectiveCurveToRelative(-0.02f, 0.0f, -0.06f, 0.01f) + curveToRelative(-0.02f, 0.0f, -0.06f, 0.0f, -0.11f, 0.0f) curveToRelative(-0.02f, -0.0f, -0.18f, 0.0f, -0.36f, -0.07f) close() - moveTo(106.6f, 110.93f) + moveTo(149.54f, 111.05f) arcToRelative(2.5f, 2.5f, 0.0f, false, true, -0.01f, -1.17f) curveToRelative(0.09f, -0.39f, 0.31f, -0.86f, 0.76f, -1.4f) - curveToRelative(0.93f, -1.12f, 2.79f, -2.49f, 6.29f, -4.16f) + curveToRelative(0.93f, -1.12f, 2.79f, -2.49f, 6.29f, -4.17f) lineToRelative(-0.86f, -1.8f) - curveToRelative(-3.58f, 1.71f, -5.76f, 3.23f, -6.97f, 4.68f) + curveToRelative(-3.58f, 1.71f, -5.75f, 3.24f, -6.96f, 4.69f) curveToRelative(-0.62f, 0.74f, -1.0f, 1.48f, -1.17f, 2.22f) arcToRelative(4.5f, 4.5f, 0.0f, false, false, 0.01f, 2.08f) close() @@ -196,83 +194,73 @@ val AppIllus.StorageBoxPileLight: ImageVector path( fill = SolidColor(Color(0xFF3CB572)), stroke = SolidColor(Color(0xFF014958)), - strokeLineWidth = 1.0f, + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(106.5f, 145.5f) + moveTo(149.44f, 145.65f) verticalLineTo(0.5f) - horizontalLineToRelative(106.0f) - verticalLineToRelative(145.0f) + horizontalLineToRelative(105.94f) + verticalLineToRelative(145.15f) close() } path( fill = SolidColor(Color(0xFFFFFFFF)), stroke = SolidColor(Color(0xFF014958)), - strokeLineWidth = 1.0f, + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(70.5f, 145.5f) + moveTo(113.46f, 145.65f) verticalLineTo(0.5f) - horizontalLineToRelative(106.0f) - verticalLineToRelative(145.0f) + horizontalLineToRelative(105.94f) + verticalLineToRelative(145.15f) close() } path( fill = SolidColor(Color(0xFFE3F6DC)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(155.2f, 46.32f) - horizontalLineTo(81.06f) - verticalLineToRelative(22.18f) - horizontalLineTo(155.2f) + moveTo(198.12f, 46.37f) + horizontalLineToRelative(-74.11f) + verticalLineToRelative(22.21f) + horizontalLineToRelative(74.11f) close() } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(104.57f, 58.91f) - curveToRelative(0.0f, -1.56f, -1.09f, -2.24f, -2.12f, -2.24f) - curveToRelative(-0.98f, 0.0f, -1.61f, 0.57f, -1.82f, 1.04f) + moveTo(147.52f, 58.97f) + curveToRelative(0.0f, -1.56f, -1.09f, -2.23f, -2.12f, -2.23f) + curveToRelative(-0.97f, 0.0f, -1.61f, 0.57f, -1.82f, 1.04f) lineToRelative(-1.18f, -0.06f) lineToRelative(0.61f, -5.07f) horizontalLineToRelative(5.41f) - verticalLineToRelative(1.11f) - horizontalLineToRelative(-4.45f) + verticalLineToRelative(1.1f) + horizontalLineToRelative(-4.44f) lineToRelative(-0.32f, 2.68f) curveToRelative(0.49f, -0.48f, 1.25f, -0.71f, 2.03f, -0.71f) curveToRelative(1.65f, 0.0f, 3.09f, 1.17f, 3.09f, 3.25f) - curveToRelative(0.0f, 2.16f, -1.6f, 3.28f, -3.35f, 3.28f) + curveToRelative(0.0f, 2.16f, -1.6f, 3.27f, -3.35f, 3.27f) curveToRelative(-2.18f, 0.0f, -3.17f, -1.38f, -3.35f, -2.9f) horizontalLineToRelative(1.22f) curveToRelative(0.18f, 1.18f, 0.82f, 1.91f, 2.13f, 1.91f) - curveToRelative(1.13f, 0.0f, 2.11f, -0.82f, 2.11f, -2.28f) - moveToRelative(6.16f, 3.26f) - curveToRelative(-2.51f, 0.0f, -3.67f, -1.9f, -3.67f, -4.89f) - curveToRelative(0.0f, -2.98f, 1.16f, -4.88f, 3.67f, -4.88f) - reflectiveCurveToRelative(3.67f, 1.9f, 3.67f, 4.88f) - curveToRelative(0.0f, 2.99f, -1.16f, 4.89f, -3.67f, 4.89f) + curveToRelative(1.13f, 0.0f, 2.11f, -0.82f, 2.11f, -2.27f) + moveToRelative(6.15f, 3.26f) + curveToRelative(-2.51f, 0.0f, -3.66f, -1.9f, -3.66f, -4.89f) + curveToRelative(0.0f, -2.97f, 1.16f, -4.87f, 3.66f, -4.87f) + reflectiveCurveToRelative(3.66f, 1.9f, 3.66f, 4.87f) + curveToRelative(0.0f, 2.99f, -1.16f, 4.89f, -3.66f, 4.89f) moveToRelative(0.0f, -8.77f) - curveToRelative(-1.48f, 0.0f, -2.4f, 1.27f, -2.4f, 3.89f) + curveToRelative(-1.48f, 0.0f, -2.4f, 1.27f, -2.4f, 3.88f) curveToRelative(0.0f, 2.63f, 0.92f, 3.9f, 2.4f, 3.9f) reflectiveCurveToRelative(2.4f, -1.27f, 2.4f, -3.9f) - curveToRelative(0.0f, -2.61f, -0.92f, -3.89f, -2.4f, -3.89f) + curveToRelative(0.0f, -2.61f, -0.92f, -3.88f, -2.4f, -3.88f) moveToRelative(16.33f, 1.92f) horizontalLineToRelative(-1.29f) curveToRelative(-0.31f, -1.05f, -1.17f, -1.79f, -2.68f, -1.79f) @@ -280,47 +268,42 @@ val AppIllus.StorageBoxPileLight: ImageVector curveToRelative(0.0f, 2.38f, 1.22f, 3.78f, 2.96f, 3.78f) curveToRelative(1.26f, 0.0f, 2.78f, -0.52f, 2.78f, -2.47f) verticalLineToRelative(-0.25f) - horizontalLineToRelative(-2.5f) - verticalLineToRelative(-1.14f) + horizontalLineToRelative(-2.49f) + lineTo(166.32f, 57.25f) horizontalLineToRelative(3.74f) verticalLineToRelative(4.81f) horizontalLineToRelative(-1.04f) lineToRelative(-0.06f, -1.18f) - curveToRelative(-0.61f, 0.96f, -1.72f, 1.35f, -2.98f, 1.35f) + curveToRelative(-0.61f, 0.96f, -1.72f, 1.35f, -2.97f, 1.35f) curveToRelative(-2.72f, 0.0f, -4.26f, -2.03f, -4.26f, -4.9f) curveToRelative(0.0f, -2.92f, 1.73f, -4.86f, 4.38f, -4.86f) curveToRelative(1.95f, 0.0f, 3.51f, 1.09f, 3.9f, 2.91f) moveToRelative(2.18f, -2.74f) horizontalLineToRelative(3.39f) - curveToRelative(1.75f, 0.0f, 3.32f, 0.46f, 3.32f, 2.33f) + curveToRelative(1.75f, 0.0f, 3.31f, 0.45f, 3.31f, 2.33f) curveToRelative(0.0f, 0.9f, -0.39f, 1.7f, -1.04f, 2.08f) - curveToRelative(0.9f, 0.38f, 1.43f, 1.08f, 1.43f, 2.24f) - curveToRelative(0.0f, 2.0f, -1.5f, 2.78f, -3.38f, 2.78f) + curveToRelative(0.9f, 0.38f, 1.43f, 1.08f, 1.43f, 2.23f) + curveToRelative(0.0f, 2.0f, -1.49f, 2.78f, -3.38f, 2.78f) horizontalLineToRelative(-3.72f) close() - moveTo(130.56f, 56.61f) - horizontalLineToRelative(2.28f) - curveToRelative(1.08f, 0.0f, 1.77f, -0.42f, 1.77f, -1.52f) + moveTo(173.5f, 56.67f) + horizontalLineToRelative(2.27f) + curveToRelative(1.08f, 0.0f, 1.77f, -0.41f, 1.77f, -1.52f) curveToRelative(0.0f, -0.96f, -0.71f, -1.39f, -1.77f, -1.39f) - horizontalLineToRelative(-2.28f) + horizontalLineToRelative(-2.27f) close() - moveTo(130.56f, 60.89f) + moveTo(173.5f, 60.94f) horizontalLineToRelative(2.4f) curveToRelative(1.34f, 0.0f, 2.0f, -0.58f, 2.0f, -1.65f) - curveToRelative(0.0f, -1.11f, -0.66f, -1.57f, -2.08f, -1.57f) + curveToRelative(0.0f, -1.1f, -0.66f, -1.57f, -2.08f, -1.57f) horizontalLineToRelative(-2.33f) close() } path( fill = SolidColor(Color(0xFF3CB572)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(75.9f, 57.24f) + moveTo(118.86f, 57.31f) verticalLineToRelative(1.71f) horizontalLineToRelative(1.56f) verticalLineToRelative(1.22f) @@ -334,22 +317,22 @@ val AppIllus.StorageBoxPileLight: ImageVector verticalLineToRelative(1.22f) horizontalLineToRelative(-1.56f) verticalLineToRelative(1.71f) - horizontalLineTo(91.22f) + horizontalLineToRelative(15.31f) verticalLineToRelative(-1.71f) - horizontalLineToRelative(-1.57f) + horizontalLineToRelative(-1.56f) verticalLineToRelative(-1.22f) - horizontalLineToRelative(1.57f) + horizontalLineToRelative(1.56f) verticalLineToRelative(-1.71f) - horizontalLineToRelative(-1.57f) + horizontalLineToRelative(-1.56f) verticalLineToRelative(-1.22f) - horizontalLineToRelative(1.57f) + horizontalLineToRelative(1.56f) verticalLineToRelative(-1.71f) - horizontalLineToRelative(-1.57f) + horizontalLineToRelative(-1.56f) verticalLineToRelative(-1.22f) - horizontalLineToRelative(1.57f) + horizontalLineToRelative(1.56f) verticalLineToRelative(-1.71f) close() - moveTo(144.39f, 52.16f) + moveTo(187.31f, 52.22f) verticalLineToRelative(1.71f) horizontalLineToRelative(1.56f) verticalLineToRelative(1.22f) @@ -358,268 +341,243 @@ val AppIllus.StorageBoxPileLight: ImageVector horizontalLineToRelative(1.56f) verticalLineToRelative(1.22f) horizontalLineToRelative(-1.56f) - verticalLineToRelative(1.71f) + verticalLineTo(59.8f) horizontalLineToRelative(1.56f) verticalLineToRelative(1.22f) horizontalLineToRelative(-1.56f) verticalLineToRelative(1.71f) horizontalLineToRelative(15.31f) + verticalLineTo(61.02f) + horizontalLineToRelative(-1.56f) + verticalLineTo(59.8f) + horizontalLineToRelative(1.56f) verticalLineToRelative(-1.71f) - horizontalLineToRelative(-1.57f) - verticalLineToRelative(-1.22f) - horizontalLineToRelative(1.57f) - verticalLineToRelative(-1.71f) - horizontalLineToRelative(-1.57f) + horizontalLineToRelative(-1.56f) verticalLineToRelative(-1.22f) - horizontalLineToRelative(1.57f) + horizontalLineToRelative(1.56f) verticalLineToRelative(-1.71f) - horizontalLineToRelative(-1.57f) + horizontalLineToRelative(-1.56f) verticalLineToRelative(-1.22f) - horizontalLineToRelative(1.57f) + horizontalLineToRelative(1.56f) verticalLineToRelative(-1.71f) close() } path( fill = SolidColor(Color(0xFF3CB572)), stroke = SolidColor(Color(0xFF000000)), - strokeLineWidth = 1.0f, + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(54.64f, 245.11f) - verticalLineToRelative(-99.89f) - horizontalLineTo(159.41f) - verticalLineToRelative(99.89f) + moveTo(97.61f, 245.37f) + verticalLineTo(145.37f) + horizontalLineToRelative(104.72f) + verticalLineTo(245.37f) close() } path( fill = SolidColor(Color(0xFFFFFFFF)), stroke = SolidColor(Color(0xFF000000)), - strokeLineWidth = 1.0f, + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(18.75f, 245.11f) - verticalLineToRelative(-99.89f) - horizontalLineToRelative(104.77f) - verticalLineToRelative(99.89f) + moveTo(61.74f, 245.37f) + verticalLineTo(145.37f) + horizontalLineToRelative(104.72f) + verticalLineTo(245.37f) close() } path( fill = SolidColor(Color(0xFFE3F6DC)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(159.12f, 183.21f) - horizontalLineToRelative(-35.06f) - verticalLineTo(200.4f) - horizontalLineToRelative(35.06f) + moveTo(202.04f, 183.41f) + horizontalLineToRelative(-35.04f) + verticalLineToRelative(17.2f) + horizontalLineToRelative(35.04f) close() - moveTo(123.38f, 183.21f) - horizontalLineTo(18.89f) - verticalLineTo(200.4f) - horizontalLineToRelative(104.49f) + moveTo(166.31f, 183.41f) + horizontalLineTo(61.88f) + verticalLineToRelative(17.2f) + horizontalLineToRelative(104.43f) close() } path( fill = SolidColor(Color(0xFF3CB572)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(46.28f, 157.45f) - horizontalLineTo(27.25f) - verticalLineToRelative(9.17f) - horizontalLineToRelative(19.03f) + moveTo(89.26f, 157.61f) + horizontalLineTo(70.23f) + verticalLineToRelative(9.18f) + horizontalLineToRelative(19.02f) close() } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(46.28f, 157.45f) - horizontalLineTo(30.03f) - verticalLineToRelative(9.17f) - horizontalLineToRelative(16.25f) + moveTo(89.26f, 157.61f) + horizontalLineTo(73.01f) + verticalLineToRelative(9.18f) + horizontalLineToRelative(16.24f) close() } path( fill = SolidColor(Color(0xFFFFFFFF)), stroke = SolidColor(Color(0xFF000000)), - strokeLineWidth = 1.0f, + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(146.49f, 135.73f) - horizontalLineToRelative(69.07f) - verticalLineToRelative(120.9f) - horizontalLineToRelative(-69.07f) + moveTo(189.41f, 135.87f) + horizontalLineToRelative(69.04f) + verticalLineToRelative(121.03f) + horizontalLineToRelative(-69.04f) close() } path( fill = SolidColor(Color(0xFF3CB572)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(210.26f, 151.54f) - horizontalLineToRelative(-20.48f) - verticalLineToRelative(9.37f) - horizontalLineToRelative(20.48f) + moveTo(253.15f, 151.7f) + horizontalLineToRelative(-20.47f) + verticalLineToRelative(9.38f) + horizontalLineToRelative(20.47f) close() } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(210.26f, 151.54f) - horizontalLineToRelative(-15.25f) - verticalLineToRelative(9.37f) - horizontalLineToRelative(15.25f) + moveTo(253.15f, 151.7f) + horizontalLineToRelative(-15.24f) + verticalLineToRelative(9.38f) + horizontalLineToRelative(15.24f) close() } path( fill = SolidColor(Color(0xFF3CB572)), stroke = SolidColor(Color(0xFF000000)), - strokeLineWidth = 1.0f, + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(215.83f, 135.73f) - horizontalLineToRelative(34.77f) - verticalLineToRelative(120.9f) - horizontalLineToRelative(-34.77f) + moveTo(258.72f, 135.87f) + horizontalLineToRelative(34.75f) + verticalLineToRelative(121.03f) + horizontalLineToRelative(-34.75f) close() } path( fill = SolidColor(Color(0xFFFFFFFF)), stroke = SolidColor(Color(0xFF014958)), - strokeLineWidth = 1.0f, + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(7.8f, 203.61f) - horizontalLineTo(117.75f) - verticalLineToRelative(53.01f) - horizontalLineTo(7.8f) + moveTo(50.79f, 203.83f) + horizontalLineToRelative(109.89f) + verticalLineTo(256.9f) + horizontalLineTo(50.79f) close() } path( fill = SolidColor(Color(0xFF014958)), stroke = SolidColor(Color(0xFF014958)), - strokeLineWidth = 1.0f, + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(0.69f, 224.51f) - lineToRelative(6.97f, -20.9f) - horizontalLineToRelative(109.9f) - lineToRelative(-6.97f, 20.9f) + moveToRelative(43.69f, 224.75f) + lineToRelative(6.96f, -20.92f) + horizontalLineToRelative(109.84f) + lineToRelative(-6.96f, 20.92f) close() } path( fill = SolidColor(Color(0xFF3CB572)), stroke = SolidColor(Color(0xFF014958)), - strokeLineWidth = 1.0f, + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(118.02f, 203.61f) - horizontalLineToRelative(48.64f) - verticalLineToRelative(53.01f) - horizontalLineTo(118.02f) + moveTo(160.96f, 203.83f) + horizontalLineToRelative(48.61f) + verticalLineTo(256.9f) + horizontalLineToRelative(-48.61f) close() } path( fill = SolidColor(Color(0xFF014958)), stroke = SolidColor(Color(0xFF014958)), - strokeLineWidth = 1.0f, + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(125.18f, 224.51f) - lineToRelative(-6.97f, -20.9f) - horizontalLineToRelative(48.58f) - lineToRelative(6.97f, 20.9f) + moveToRelative(168.11f, 224.75f) + lineToRelative(-6.96f, -20.92f) + horizontalLineToRelative(48.56f) + lineToRelative(6.96f, 20.92f) close() } path( fill = SolidColor(Color(0xFF014958)), stroke = SolidColor(Color(0xFF000000)), - strokeLineWidth = 1.0f, + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(219.27f, 257.23f) - verticalLineTo(233.5f) - horizontalLineToRelative(69.38f) - verticalLineToRelative(23.73f) + moveTo(262.15f, 257.5f) + verticalLineToRelative(-23.76f) + horizontalLineToRelative(69.35f) + verticalLineToRelative(23.76f) close() } path( fill = SolidColor(Color(0xFFE3F6DC)), stroke = SolidColor(Color(0xFF000000)), - strokeLineWidth = 1.0f, + strokeLineWidth = 0.999f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(195.39f, 257.23f) - verticalLineTo(233.5f) - horizontalLineToRelative(69.38f) - verticalLineToRelative(23.73f) + moveTo(238.29f, 257.5f) + verticalLineToRelative(-23.76f) + horizontalLineToRelative(69.35f) + verticalLineToRelative(23.76f) close() } } }.build() - return _storageBoxPileLight!! + return _storageCardboardBoxPileLight!! } -private var _storageBoxPileLight: ImageVector? = null +private var _storageCardboardBoxPileLight: ImageVector? = null @Preview @Composable private fun Preview() { - val imageVector = AppIllus.StorageBoxPileLight + val imageVector = AppIllus.StorageCardboardBoxPileLight Box { Image( imageVector = imageVector, diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeDark.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeDark.kt index d982cd222..1b47ad250 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeDark.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeDark.kt @@ -1,3 +1,20 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package com.infomaniak.swisstransfer.ui.images.illus.onboarding import androidx.compose.foundation.Image @@ -29,10 +46,10 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } _threeCardsTransferTypeDark = Builder( name = "ThreeCardsTransferTypeDark", - defaultWidth = 296.0.dp, - defaultHeight = 210.0.dp, - viewportWidth = 296.0f, - viewportHeight = 210.0f + defaultWidth = 375.0.dp, + defaultHeight = 258.0.dp, + viewportWidth = 375.0f, + viewportHeight = 258.0f ).apply { path( fill = SolidColor(Color(0x00000000)), @@ -43,9 +60,9 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(270.05f, 200.24f) + moveTo(310.05f, 224.24f) curveToRelative(7.94f, 1.49f, 16.46f, -2.26f, 20.13f, -13.08f) - moveTo(278.15f, 206.6f) + moveTo(318.15f, 230.6f) curveToRelative(5.49f, 1.06f, 11.33f, -1.38f, 13.78f, -8.6f) } path( @@ -57,9 +74,9 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(43.28f, 8.95f) + moveTo(83.28f, 32.95f) curveToRelative(-8.35f, -1.06f, -16.97f, 3.37f, -20.11f, 14.84f) - moveTo(34.47f, 2.83f) + moveTo(74.47f, 26.83f) curveToRelative(-5.77f, -0.76f, -11.69f, 2.14f, -13.79f, 9.79f) } path( @@ -71,47 +88,37 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(148.56f, 49.57f) - lineTo(227.55f, 28.4f) - arcTo(3.06f, 3.06f, 120.0f, false, true, 231.3f, 30.56f) - lineTo(270.87f, 178.24f) - arcTo(3.06f, 3.06f, 120.0f, false, true, 268.71f, 181.99f) - lineTo(189.72f, 203.15f) - arcTo(3.06f, 3.06f, 120.0f, false, true, 185.97f, 200.99f) - lineTo(146.4f, 53.31f) - arcTo(3.06f, 3.06f, 120.0f, false, true, 148.56f, 49.57f) + moveTo(188.56f, 73.57f) + lineTo(267.55f, 52.4f) + arcTo(3.06f, 3.06f, 120.0f, false, true, 271.3f, 54.56f) + lineTo(310.87f, 202.24f) + arcTo(3.06f, 3.06f, 120.0f, false, true, 308.71f, 205.98f) + lineTo(229.72f, 227.15f) + arcTo(3.06f, 3.06f, 120.0f, false, true, 225.97f, 224.99f) + lineTo(186.4f, 77.31f) + arcTo(3.06f, 3.06f, 120.0f, false, true, 188.56f, 73.57f) close() } path( fill = SolidColor(Color(0xFF67DD95)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(164.26f, 66.93f) - lineTo(222.64f, 51.29f) - arcTo(1.78f, 1.78f, 120.0f, false, true, 224.82f, 52.54f) - lineTo(242.31f, 117.8f) - arcTo(1.78f, 1.78f, 120.0f, false, true, 241.05f, 119.98f) - lineTo(182.66f, 135.62f) - arcTo(1.78f, 1.78f, 120.0f, false, true, 180.49f, 134.36f) - lineTo(163.0f, 69.11f) - arcTo(1.78f, 1.78f, 120.0f, false, true, 164.26f, 66.93f) + moveTo(204.26f, 90.93f) + lineTo(262.64f, 75.29f) + arcTo(1.78f, 1.78f, 120.0f, false, true, 264.82f, 76.54f) + lineTo(282.31f, 141.8f) + arcTo(1.78f, 1.78f, 120.0f, false, true, 281.05f, 143.97f) + lineTo(222.66f, 159.62f) + arcTo(1.78f, 1.78f, 120.0f, false, true, 220.49f, 158.36f) + lineTo(203.0f, 93.11f) + arcTo(1.78f, 1.78f, 120.0f, false, true, 204.26f, 90.93f) close() } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(202.65f, 93.45f) + moveTo(242.65f, 117.45f) moveToRelative(-20.61f, 5.52f) arcToRelative(21.33f, 21.33f, 120.0f, true, true, 41.21f, -11.04f) arcToRelative(21.33f, 21.33f, 120.0f, true, true, -41.21f, 11.04f) @@ -125,7 +132,7 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(192.47f, 89.02f) + moveTo(232.47f, 113.02f) curveToRelative(-1.2f, 0.32f, -1.88f, 1.57f, -1.56f, 2.75f) lineToRelative(2.76f, 10.3f) curveToRelative(0.32f, 1.18f, 1.52f, 1.92f, 2.73f, 1.6f) @@ -134,9 +141,9 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector lineToRelative(-2.76f, -10.3f) curveToRelative(-0.32f, -1.18f, -1.52f, -1.92f, -2.73f, -1.6f) close() - moveTo(195.43f, 101.6f) - lineTo(192.86f, 91.98f) - lineTo(202.87f, 96.5f) + moveTo(235.43f, 125.6f) + lineTo(232.86f, 115.98f) + lineTo(242.87f, 120.5f) arcToRelative(0.92f, 0.92f, 0.0f, false, false, 1.12f, -0.3f) lineToRelative(6.41f, -8.92f) lineToRelative(2.58f, 9.62f) @@ -150,18 +157,13 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFFFFFFFF)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(210.69f, 150.77f) + moveToRelative(250.69f, 174.77f) lineToRelative(-4.44f, -6.95f) lineToRelative(2.04f, 7.6f) lineToRelative(-1.23f, 0.33f) - lineToRelative(-2.34f, -8.71f) + lineToRelative(-2.34f, -8.72f) lineToRelative(2.06f, -0.55f) lineToRelative(4.17f, 6.66f) lineToRelative(0.28f, -7.86f) @@ -171,7 +173,7 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector lineToRelative(-2.04f, -7.6f) lineToRelative(-0.37f, 8.24f) close() - moveTo(216.67f, 147.34f) + moveTo(256.67f, 171.34f) curveToRelative(-0.41f, -1.53f, 1.19f, -2.43f, 3.77f, -3.44f) lineToRelative(-0.04f, -0.16f) curveToRelative(-0.32f, -1.18f, -1.08f, -1.4f, -1.89f, -1.18f) @@ -184,26 +186,26 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector lineToRelative(-1.11f, 0.3f) arcToRelative(7.0f, 7.0f, 0.0f, false, true, -0.32f, -0.87f) curveToRelative(-0.22f, 0.77f, -0.79f, 1.33f, -1.93f, 1.64f) - curveToRelative(-1.21f, 0.33f, -2.4f, -0.08f, -2.72f, -1.27f) + curveToRelative(-1.21f, 0.32f, -2.4f, -0.08f, -2.72f, -1.27f) moveToRelative(4.08f, -2.6f) curveToRelative(-1.93f, 0.74f, -3.11f, 1.36f, -2.88f, 2.25f) curveToRelative(0.16f, 0.61f, 0.74f, 0.9f, 1.52f, 0.69f) curveToRelative(1.02f, -0.27f, 1.87f, -1.0f, 1.46f, -2.53f) close() - moveTo(222.99f, 138.14f) - lineTo(223.34f, 139.46f) - lineTo(222.25f, 139.75f) - lineTo(221.89f, 138.43f) + moveTo(262.99f, 162.13f) + lineTo(263.34f, 163.46f) + lineTo(262.25f, 163.75f) + lineTo(261.89f, 162.43f) close() - moveTo(223.59f, 140.38f) - lineTo(225.32f, 146.85f) - lineTo(224.23f, 147.14f) - lineTo(222.5f, 140.68f) + moveTo(263.59f, 164.38f) + lineTo(265.32f, 170.85f) + lineTo(264.23f, 171.14f) + lineTo(262.49f, 164.68f) close() - moveTo(228.15f, 146.09f) - lineTo(227.06f, 146.39f) - lineTo(224.72f, 137.67f) - lineTo(225.81f, 137.38f) + moveTo(268.15f, 170.09f) + lineTo(267.06f, 170.38f) + lineTo(264.72f, 161.67f) + lineTo(265.82f, 161.38f) close() } path( @@ -215,52 +217,42 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(44.72f, 28.4f) - lineTo(123.71f, 49.57f) - arcTo(3.06f, 3.06f, 60.0f, false, true, 125.87f, 53.31f) - lineTo(86.3f, 200.99f) - arcTo(3.06f, 3.06f, 60.0f, false, true, 82.56f, 203.15f) - lineTo(3.56f, 181.99f) - arcTo(3.06f, 3.06f, 60.0f, false, true, 1.4f, 178.24f) - lineTo(40.97f, 30.56f) - arcTo(3.06f, 3.06f, 60.0f, false, true, 44.72f, 28.4f) + moveTo(84.72f, 52.4f) + lineTo(163.71f, 73.57f) + arcTo(3.06f, 3.06f, 60.0f, false, true, 165.87f, 77.31f) + lineTo(126.3f, 224.99f) + arcTo(3.06f, 3.06f, 60.0f, false, true, 122.56f, 227.15f) + lineTo(43.56f, 205.99f) + arcTo(3.06f, 3.06f, 60.0f, false, true, 41.4f, 202.24f) + lineTo(80.97f, 54.56f) + arcTo(3.06f, 3.06f, 60.0f, false, true, 84.72f, 52.4f) close() } path( fill = SolidColor(Color(0xFF67DD95)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(47.91f, 50.83f) - lineTo(108.01f, 66.93f) - arcTo(1.78f, 1.78f, 60.0f, false, true, 109.27f, 69.11f) - lineTo(91.78f, 134.36f) - arcTo(1.78f, 1.78f, 60.0f, false, true, 89.61f, 135.62f) - lineTo(29.5f, 119.52f) - arcTo(1.78f, 1.78f, 60.0f, false, true, 28.25f, 117.34f) - lineTo(45.73f, 52.09f) - arcTo(1.78f, 1.78f, 60.0f, false, true, 47.91f, 50.83f) + moveTo(87.91f, 74.83f) + lineTo(148.01f, 90.93f) + arcTo(1.78f, 1.78f, 60.0f, false, true, 149.27f, 93.11f) + lineTo(131.78f, 158.36f) + arcTo(1.78f, 1.78f, 60.0f, false, true, 129.61f, 159.62f) + lineTo(69.5f, 143.52f) + arcTo(1.78f, 1.78f, 60.0f, false, true, 68.25f, 141.34f) + lineTo(85.73f, 76.08f) + arcTo(1.78f, 1.78f, 60.0f, false, true, 87.91f, 74.83f) close() } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(56.08f, 69.95f) + moveToRelative(96.08f, 93.95f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(55.53f, 72.01f) + moveTo(95.53f, 96.01f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -268,34 +260,34 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(54.98f, 74.07f) + moveToRelative(94.98f, 98.07f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(54.42f, 76.13f) + moveTo(94.43f, 100.13f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(53.87f, 78.19f) + moveTo(93.87f, 102.19f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(53.32f, 80.25f) + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + pathFillType = NonZero + ) { + moveToRelative(93.32f, 104.25f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(58.14f, 70.5f) + moveTo(98.14f, 94.5f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -303,24 +295,19 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(55.38f, 80.81f) + moveToRelative(95.38f, 104.81f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(60.2f, 71.06f) + moveTo(100.2f, 95.05f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(59.1f, 75.18f) + moveTo(99.1f, 99.17f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -328,29 +315,24 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(58.55f, 77.24f) + moveToRelative(98.55f, 101.23f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(57.44f, 81.36f) + moveTo(97.44f, 105.36f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(62.26f, 71.61f) + moveTo(102.26f, 95.61f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(61.16f, 75.73f) + moveTo(101.16f, 99.73f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -358,24 +340,19 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(60.61f, 77.79f) + moveToRelative(100.61f, 101.79f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(59.5f, 81.91f) + moveTo(99.5f, 105.91f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(64.32f, 72.16f) + moveTo(104.32f, 96.16f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -383,19 +360,19 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(61.56f, 82.46f) + moveToRelative(101.56f, 106.46f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(106.38f, 96.71f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(66.38f, 72.71f) + moveTo(105.83f, 98.77f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -403,19 +380,9 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(65.83f, 74.77f) - lineToRelative(0.55f, -2.06f) - lineToRelative(-2.06f, -0.55f) - lineToRelative(-0.55f, 2.06f) - close() - moveTo(65.28f, 76.83f) + moveToRelative(105.28f, 100.83f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -423,34 +390,29 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(64.73f, 78.89f) - lineToRelative(0.55f, -2.06f) - lineToRelative(-2.06f, -0.55f) - lineToRelative(-0.55f, 2.06f) - close() - moveTo(64.18f, 80.96f) + moveToRelative(104.73f, 102.89f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(63.62f, 83.01f) + moveTo(104.18f, 104.95f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(77.15f, 106.44f) + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + pathFillType = NonZero + ) { + moveToRelative(103.62f, 107.01f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(76.6f, 108.5f) + moveTo(117.15f, 130.44f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -458,19 +420,14 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(76.05f, 110.56f) + moveToRelative(116.6f, 132.5f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(75.5f, 112.63f) + moveTo(116.05f, 134.56f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -478,14 +435,9 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(74.94f, 114.69f) + moveToRelative(115.5f, 136.62f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -493,19 +445,9 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(74.39f, 116.75f) - lineToRelative(0.55f, -2.06f) - lineToRelative(-2.06f, -0.55f) - lineToRelative(-0.55f, 2.06f) - close() - moveTo(79.21f, 107.0f) + moveToRelative(114.94f, 138.68f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -513,24 +455,14 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(76.45f, 117.3f) - lineToRelative(0.55f, -2.06f) - lineToRelative(-2.06f, -0.55f) - lineToRelative(-0.55f, 2.06f) - close() - moveTo(81.27f, 107.55f) + moveToRelative(114.39f, 140.74f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(80.17f, 111.67f) + moveTo(119.21f, 130.99f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -538,39 +470,44 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(79.62f, 113.73f) + moveToRelative(116.45f, 141.3f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(78.51f, 117.85f) + moveTo(121.27f, 131.55f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(83.33f, 108.1f) + moveTo(120.17f, 135.67f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(82.23f, 112.22f) + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + pathFillType = NonZero + ) { + moveToRelative(119.62f, 137.73f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(81.68f, 114.28f) + moveTo(118.51f, 141.85f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(80.57f, 118.4f) + moveTo(123.33f, 132.1f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(122.23f, 136.22f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -578,19 +515,19 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(85.39f, 108.65f) + moveToRelative(121.68f, 138.28f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(82.63f, 118.95f) + moveTo(120.57f, 142.4f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(125.39f, 132.65f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -598,34 +535,24 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(87.46f, 109.2f) + moveToRelative(122.63f, 142.95f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(86.9f, 111.27f) + moveTo(127.46f, 133.2f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - } - path( - fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(86.35f, 113.33f) + moveTo(126.9f, 135.26f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(126.35f, 137.32f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -633,14 +560,9 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(85.8f, 115.39f) + moveToRelative(125.8f, 139.38f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -648,14 +570,9 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(85.25f, 117.45f) + moveToRelative(125.25f, 141.44f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -663,29 +580,24 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(84.69f, 119.51f) + moveToRelative(124.69f, 143.5f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(52.18f, 84.36f) + moveTo(92.18f, 108.36f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(51.62f, 86.42f) + moveTo(91.62f, 110.42f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(51.07f, 88.49f) + moveTo(91.07f, 112.48f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -693,19 +605,14 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(50.52f, 90.54f) + moveToRelative(90.52f, 114.54f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(49.42f, 94.67f) + moveTo(89.42f, 118.67f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -713,24 +620,19 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(48.86f, 96.73f) + moveToRelative(88.86f, 120.73f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(48.31f, 98.79f) + moveTo(88.31f, 122.79f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(47.21f, 102.91f) + moveTo(87.21f, 126.91f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -738,14 +640,9 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(46.65f, 104.97f) + moveToRelative(86.65f, 128.97f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -753,69 +650,64 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(46.1f, 107.03f) + moveToRelative(86.1f, 131.03f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(45.55f, 109.09f) + moveTo(85.55f, 133.09f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(54.24f, 84.92f) + moveTo(94.24f, 108.91f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(53.69f, 86.98f) + moveTo(93.69f, 110.98f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(50.92f, 97.28f) + moveTo(90.93f, 121.28f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(49.82f, 101.4f) + moveTo(89.82f, 125.4f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(48.72f, 105.52f) + moveTo(88.72f, 129.52f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(47.61f, 109.64f) + moveTo(87.61f, 133.64f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(56.3f, 85.47f) + moveTo(96.3f, 109.47f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(54.64f, 91.65f) + moveTo(94.64f, 115.65f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(52.43f, 99.89f) + moveTo(92.43f, 123.89f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(51.88f, 101.95f) + moveTo(91.88f, 125.95f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -823,19 +715,14 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(51.33f, 104.01f) + moveToRelative(91.33f, 128.01f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(50.22f, 108.13f) + moveTo(90.22f, 132.13f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -843,39 +730,44 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(49.67f, 110.19f) + moveToRelative(89.67f, 134.19f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(56.15f, 94.26f) + moveTo(96.15f, 118.26f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(55.05f, 98.38f) + moveTo(95.05f, 122.38f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(54.49f, 100.44f) + moveTo(94.49f, 124.44f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(53.94f, 102.5f) + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + pathFillType = NonZero + ) { + moveToRelative(93.94f, 126.5f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(53.39f, 104.57f) + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + pathFillType = NonZero + ) { + moveToRelative(93.39f, 128.56f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -883,34 +775,29 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(52.84f, 106.63f) + moveToRelative(92.84f, 130.63f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(52.28f, 108.69f) + moveTo(92.29f, 132.69f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(51.73f, 110.75f) + moveTo(91.73f, 134.75f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(60.42f, 86.57f) + moveTo(100.42f, 110.57f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(59.87f, 88.63f) + moveTo(99.87f, 112.63f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -918,34 +805,29 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(59.31f, 90.69f) + moveToRelative(99.32f, 114.69f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(58.76f, 92.75f) + moveTo(98.76f, 116.75f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(56.0f, 103.06f) + moveTo(96.0f, 127.06f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(55.45f, 105.12f) + moveTo(95.45f, 129.12f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(54.34f, 109.24f) + moveTo(94.34f, 133.24f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -953,29 +835,24 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(60.82f, 93.31f) + moveToRelative(100.82f, 117.31f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(60.27f, 95.37f) + moveTo(100.27f, 119.36f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(58.62f, 101.55f) + moveTo(98.61f, 125.55f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(58.06f, 103.61f) + moveTo(98.06f, 127.61f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -983,74 +860,64 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(57.51f, 105.67f) + moveToRelative(97.51f, 129.67f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(55.85f, 111.85f) + moveTo(95.85f, 135.85f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(61.23f, 100.04f) + moveTo(101.23f, 124.04f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - } - path( - fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(59.57f, 106.22f) + moveTo(99.57f, 130.22f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(58.47f, 110.34f) + moveTo(98.47f, 134.34f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(70.47f, 73.8f) + moveTo(110.47f, 97.8f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(67.71f, 84.11f) + moveTo(107.71f, 108.11f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(62.5f, 87.14f) + moveTo(102.5f, 111.14f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(63.29f, 100.59f) + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + pathFillType = NonZero + ) { + moveToRelative(103.29f, 124.59f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(62.18f, 104.71f) + moveTo(102.18f, 128.71f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(61.63f, 106.77f) + moveTo(101.63f, 130.77f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1058,24 +925,19 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(61.08f, 108.83f) + moveToRelative(101.08f, 132.83f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(59.97f, 112.96f) + moveTo(99.97f, 136.95f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(72.53f, 74.36f) + moveTo(112.53f, 98.36f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1083,29 +945,34 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(71.97f, 76.42f) + moveToRelative(111.97f, 100.42f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(71.42f, 78.48f) + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + pathFillType = NonZero + ) { + moveToRelative(111.42f, 102.48f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(70.87f, 80.54f) + moveTo(110.87f, 104.54f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(70.32f, 82.6f) + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + pathFillType = NonZero + ) { + moveToRelative(110.32f, 106.6f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1113,69 +980,64 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(69.77f, 84.66f) + moveToRelative(109.77f, 108.66f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(66.23f, 110.21f) + moveTo(106.23f, 134.21f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(62.59f, 111.45f) + moveTo(102.59f, 135.45f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - } - path( - fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(62.04f, 113.51f) + moveTo(102.04f, 137.51f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(74.59f, 74.91f) + moveTo(114.59f, 98.91f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(74.04f, 76.97f) + moveTo(114.04f, 100.97f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(72.38f, 83.15f) + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + pathFillType = NonZero + ) { + moveToRelative(112.38f, 107.15f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(71.83f, 85.21f) + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + pathFillType = NonZero + ) { + moveToRelative(111.83f, 109.21f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(64.56f, 87.69f) + moveTo(104.56f, 111.69f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(65.2f, 109.94f) + moveTo(105.2f, 133.94f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1183,14 +1045,9 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(64.65f, 112.0f) + moveToRelative(104.65f, 136.0f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1198,19 +1055,14 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(64.1f, 114.06f) + moveToRelative(104.1f, 138.06f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(75.54f, 79.58f) + moveTo(115.54f, 103.58f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1218,24 +1070,19 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(74.99f, 81.64f) + moveToRelative(114.99f, 105.64f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(61.72f, 97.97f) + moveTo(101.72f, 121.97f) lineToRelative(0.55f, -2.06f) - lineToRelative(-1.99f, -0.53f) + lineToRelative(-1.98f, -0.53f) lineToRelative(-0.55f, 2.06f) close() - moveTo(68.37f, 106.37f) + moveTo(108.37f, 130.37f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1243,34 +1090,19 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(66.87f, 103.77f) + moveToRelative(106.87f, 127.77f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(67.81f, 108.43f) + moveTo(107.81f, 132.43f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - } - path( - fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(67.26f, 110.49f) + moveTo(107.26f, 134.49f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1278,54 +1110,39 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(66.71f, 112.55f) + moveToRelative(106.71f, 136.55f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - } - path( - fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(66.16f, 114.61f) + moveTo(106.16f, 138.61f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(78.71f, 76.01f) + moveTo(118.71f, 100.01f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(77.6f, 80.13f) + moveTo(117.6f, 104.13f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(77.05f, 82.19f) + moveTo(117.05f, 106.19f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(75.95f, 86.32f) + moveTo(115.95f, 110.31f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(71.0f, 104.87f) + moveTo(111.0f, 128.87f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1333,89 +1150,84 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(70.43f, 106.92f) + moveToRelative(110.43f, 130.92f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(79.67f, 80.69f) + moveTo(119.67f, 104.69f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(78.56f, 84.81f) + moveTo(118.56f, 108.81f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(78.01f, 86.87f) + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + pathFillType = NonZero + ) { + moveToRelative(118.01f, 110.87f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(77.47f, 88.94f) + moveTo(117.47f, 112.94f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(78.98f, 91.55f) + moveTo(118.98f, 115.55f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(76.22f, 101.86f) + moveTo(116.22f, 125.86f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(64.81f, 103.22f) + moveTo(104.81f, 127.22f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(73.59f, 103.35f) + moveTo(113.59f, 127.35f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(73.04f, 105.41f) + moveTo(113.04f, 129.41f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(71.93f, 109.54f) + moveTo(111.93f, 133.53f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - } - path( - fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(71.38f, 111.6f) + moveTo(111.38f, 135.59f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(70.83f, 113.66f) + moveTo(110.83f, 137.65f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(84.89f, 77.67f) + moveTo(124.89f, 101.67f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(124.34f, 103.73f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1423,29 +1235,24 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(84.34f, 79.73f) - lineToRelative(0.55f, -2.06f) - lineToRelative(-2.06f, -0.55f) - lineToRelative(-0.55f, 2.06f) - close() - moveTo(83.79f, 81.79f) + moveToRelative(123.79f, 105.79f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(83.23f, 83.85f) + moveTo(123.23f, 107.85f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(82.68f, 85.91f) + } + path( + fill = SolidColor(Color(0xFF1A1A1A)), + pathFillType = NonZero + ) { + moveToRelative(122.68f, 109.91f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1453,44 +1260,39 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(82.13f, 87.97f) + moveToRelative(122.13f, 111.97f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(81.03f, 92.09f) + moveTo(121.03f, 116.09f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(80.47f, 94.15f) + moveTo(120.47f, 118.15f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(79.37f, 98.28f) + moveTo(119.37f, 122.28f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(78.82f, 100.34f) + moveTo(118.82f, 124.34f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(78.26f, 102.4f) + moveTo(118.26f, 126.4f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(86.95f, 78.22f) + moveTo(126.95f, 102.22f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1498,19 +1300,14 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(84.19f, 88.52f) + moveToRelative(124.19f, 112.52f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(82.53f, 94.71f) + moveTo(122.53f, 118.71f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1518,34 +1315,29 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(81.98f, 96.77f) + moveToRelative(121.98f, 120.77f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(81.43f, 98.83f) + moveTo(121.43f, 122.83f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(80.32f, 102.95f) + moveTo(120.32f, 126.95f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(89.01f, 78.77f) + moveTo(129.01f, 102.77f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(87.91f, 82.89f) + moveTo(127.91f, 106.89f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1553,29 +1345,24 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(87.36f, 84.96f) + moveToRelative(127.36f, 108.95f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(86.25f, 89.08f) + moveTo(126.25f, 113.08f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(84.59f, 95.26f) + moveTo(124.59f, 119.26f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(84.04f, 97.32f) + moveTo(124.04f, 121.32f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1583,19 +1370,14 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(83.49f, 99.38f) + moveToRelative(123.49f, 123.38f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(82.94f, 101.44f) + moveTo(122.94f, 125.44f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1603,24 +1385,19 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(82.39f, 103.5f) + moveToRelative(122.39f, 127.5f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(91.07f, 79.32f) + moveTo(131.07f, 103.32f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(89.97f, 83.45f) + moveTo(129.97f, 107.44f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1628,34 +1405,29 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(89.42f, 85.51f) + moveToRelative(129.42f, 109.51f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(88.31f, 89.63f) + moveTo(128.31f, 113.63f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(87.21f, 93.75f) + moveTo(127.21f, 117.75f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(85.55f, 99.93f) + moveTo(125.55f, 123.93f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(93.13f, 79.88f) + moveTo(133.13f, 103.88f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1663,19 +1435,19 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(90.37f, 90.18f) + moveToRelative(130.37f, 114.18f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(89.27f, 94.3f) + moveTo(129.27f, 118.3f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(128.71f, 120.36f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1683,24 +1455,14 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(88.71f, 96.36f) + moveToRelative(128.16f, 122.42f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(88.16f, 98.42f) - lineToRelative(0.55f, -2.06f) - lineToRelative(-2.06f, -0.55f) - lineToRelative(-0.55f, 2.06f) - close() - moveTo(87.61f, 100.48f) + moveTo(127.61f, 124.48f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1708,24 +1470,19 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(87.06f, 102.54f) + moveToRelative(127.06f, 126.54f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(86.51f, 104.61f) + moveTo(126.51f, 128.6f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(95.19f, 80.43f) + moveTo(135.19f, 104.43f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1733,19 +1490,14 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(94.64f, 82.49f) + moveToRelative(134.64f, 106.49f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(94.09f, 84.55f) + moveTo(134.09f, 108.55f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1753,62 +1505,52 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(93.54f, 86.61f) + moveToRelative(133.54f, 110.61f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(92.99f, 88.67f) + moveTo(132.99f, 112.67f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(92.43f, 90.73f) + moveTo(132.43f, 114.73f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(90.22f, 98.98f) + moveTo(130.22f, 122.97f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(89.12f, 103.1f) + moveTo(129.12f, 127.1f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(75.42f, 88.91f) - lineTo(67.0f, 86.65f) + moveTo(115.42f, 112.91f) + lineToRelative(-8.42f, -2.26f) curveToRelative(-0.58f, -0.16f, -1.19f, 0.22f, -1.36f, 0.85f) lineToRelative(-2.42f, 9.03f) curveToRelative(-0.17f, 0.62f, 0.17f, 1.25f, 0.75f, 1.41f) - lineTo(72.4f, 100.2f) + lineToRelative(8.42f, 2.26f) curveToRelative(0.58f, 0.16f, 1.19f, -0.22f, 1.36f, -0.85f) lineToRelative(2.42f, -9.03f) - curveToRelative(0.17f, -0.62f, -0.17f, -1.26f, -0.75f, -1.41f) + curveToRelative(0.17f, -0.62f, -0.17f, -1.25f, -0.75f, -1.41f) } path( fill = SolidColor(Color(0xFFFFFFFF)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(54.04f, 147.46f) + moveToRelative(94.04f, 171.46f) lineToRelative(0.76f, 1.31f) lineToRelative(-0.94f, 0.55f) lineToRelative(-0.78f, -1.36f) - curveToRelative(-0.74f, 0.25f, -1.57f, 0.28f, -2.44f, 0.04f) + curveToRelative(-0.74f, 0.25f, -1.57f, 0.28f, -2.45f, 0.04f) curveToRelative(-2.51f, -0.67f, -3.58f, -2.98f, -2.88f, -5.61f) curveToRelative(0.7f, -2.63f, 2.78f, -4.09f, 5.29f, -3.41f) curveToRelative(2.51f, 0.67f, 3.59f, 2.97f, 2.88f, 5.6f) @@ -1819,11 +1561,11 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector lineToRelative(0.95f, -0.56f) lineToRelative(0.59f, 1.03f) curveToRelative(0.55f, -0.47f, 0.99f, -1.18f, 1.25f, -2.15f) - curveToRelative(0.6f, -2.25f, -0.32f, -3.81f, -1.91f, -4.23f) - curveToRelative(-1.59f, -0.43f, -3.17f, 0.47f, -3.77f, 2.71f) + curveToRelative(0.6f, -2.25f, -0.32f, -3.81f, -1.9f, -4.23f) + reflectiveCurveToRelative(-3.17f, 0.47f, -3.77f, 2.71f) reflectiveCurveToRelative(0.32f, 3.82f, 1.9f, 4.25f) moveToRelative(9.91f, -0.35f) - curveToRelative(-0.22f, -0.05f, -0.44f, -0.1f, -0.66f, -0.17f) + arcToRelative(13.0f, 13.0f, 0.0f, false, true, -0.66f, -0.17f) lineToRelative(-1.54f, -0.41f) lineToRelative(-0.98f, 3.67f) lineToRelative(-1.23f, -0.33f) @@ -1834,9 +1576,9 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector lineToRelative(0.98f, 4.41f) lineToRelative(-1.37f, -0.37f) close() - moveTo(59.69f, 142.03f) - lineTo(58.89f, 145.01f) - lineTo(60.52f, 145.45f) + moveTo(99.69f, 166.03f) + lineTo(98.89f, 169.01f) + lineTo(100.53f, 169.45f) curveToRelative(1.27f, 0.34f, 2.31f, 0.48f, 2.67f, -0.87f) reflectiveCurveToRelative(-0.6f, -1.77f, -1.87f, -2.11f) close() @@ -1850,47 +1592,37 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(91.0f, 13.5f) - lineTo(183.0f, 13.5f) - arcTo(3.5f, 3.5f, 0.0f, false, true, 186.5f, 17.0f) - lineTo(186.5f, 189.0f) - arcTo(3.5f, 3.5f, 0.0f, false, true, 183.0f, 192.5f) - lineTo(91.0f, 192.5f) - arcTo(3.5f, 3.5f, 0.0f, false, true, 87.5f, 189.0f) - lineTo(87.5f, 17.0f) - arcTo(3.5f, 3.5f, 0.0f, false, true, 91.0f, 13.5f) + moveTo(131.0f, 37.5f) + lineTo(223.0f, 37.5f) + arcTo(3.5f, 3.5f, 0.0f, false, true, 226.5f, 41.0f) + lineTo(226.5f, 213.0f) + arcTo(3.5f, 3.5f, 0.0f, false, true, 223.0f, 216.5f) + lineTo(131.0f, 216.5f) + arcTo(3.5f, 3.5f, 0.0f, false, true, 127.5f, 213.0f) + lineTo(127.5f, 41.0f) + arcTo(3.5f, 3.5f, 0.0f, false, true, 131.0f, 37.5f) close() } path( fill = SolidColor(Color(0xFF67DD95)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(103.0f, 37.0f) - lineTo(171.0f, 37.0f) - arcTo(2.0f, 2.0f, 0.0f, false, true, 173.0f, 39.0f) - lineTo(173.0f, 115.0f) - arcTo(2.0f, 2.0f, 0.0f, false, true, 171.0f, 117.0f) - lineTo(103.0f, 117.0f) - arcTo(2.0f, 2.0f, 0.0f, false, true, 101.0f, 115.0f) - lineTo(101.0f, 39.0f) - arcTo(2.0f, 2.0f, 0.0f, false, true, 103.0f, 37.0f) + moveTo(143.0f, 61.0f) + lineTo(211.0f, 61.0f) + arcTo(2.0f, 2.0f, 0.0f, false, true, 213.0f, 63.0f) + lineTo(213.0f, 139.0f) + arcTo(2.0f, 2.0f, 0.0f, false, true, 211.0f, 141.0f) + lineTo(143.0f, 141.0f) + arcTo(2.0f, 2.0f, 0.0f, false, true, 141.0f, 139.0f) + lineTo(141.0f, 63.0f) + arcTo(2.0f, 2.0f, 0.0f, false, true, 143.0f, 61.0f) close() } path( fill = SolidColor(Color(0xFF1A1A1A)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(137.0f, 77.0f) + moveTo(177.0f, 101.0f) moveToRelative(-24.0f, 0.0f) arcToRelative(24.0f, 24.0f, 0.0f, true, true, 48.0f, 0.0f) arcToRelative(24.0f, 24.0f, 0.0f, true, true, -48.0f, 0.0f) @@ -1904,12 +1636,12 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(137.85f, 79.0f) + moveToRelative(177.85f, 103.0f) lineToRelative(-0.01f, 0.01f) arcToRelative(0.98f, 0.98f, 0.0f, false, false, -0.13f, 0.73f) arcToRelative(0.98f, 0.98f, 0.0f, false, false, 0.4f, 0.62f) - curveToRelative(0.22f, 0.15f, 0.49f, 0.17f, 0.73f, 0.13f) - arcToRelative(0.98f, 0.98f, 0.0f, false, false, 0.62f, -0.39f) + curveToRelative(0.22f, 0.14f, 0.49f, 0.17f, 0.73f, 0.13f) + arcToRelative(0.97f, 0.97f, 0.0f, false, false, 0.62f, -0.39f) curveToRelative(0.83f, -1.14f, 1.26f, -2.51f, 1.05f, -3.89f) curveToRelative(-0.11f, -1.38f, -0.85f, -2.64f, -1.89f, -3.57f) curveToRelative(-1.05f, -0.94f, -2.41f, -1.47f, -3.79f, -1.37f) @@ -1926,17 +1658,17 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector lineToRelative(-0.9f, 1.0f) curveToRelative(-1.31f, 1.3f, -3.65f, 1.3f, -4.96f, 0.0f) curveToRelative(-0.67f, -0.77f, -1.04f, -1.61f, -1.04f, -2.54f) - curveToRelative(0.0f, -0.94f, 0.38f, -1.88f, 1.03f, -2.54f) + curveToRelative(0.0f, -0.94f, 0.38f, -1.88f, 1.03f, -2.53f) lineToRelative(4.82f, -4.82f) curveToRelative(0.55f, -0.55f, 1.39f, -0.93f, 2.35f, -1.03f) curveToRelative(0.84f, 0.0f, 1.66f, 0.28f, 2.3f, 1.11f) lineToRelative(0.01f, 0.02f) lineToRelative(0.02f, 0.02f) curveToRelative(0.66f, 0.56f, 1.13f, 1.41f, 1.22f, 2.25f) - arcToRelative(3.34f, 3.34f, 0.0f, false, true, -0.65f, 2.43f) + arcToRelative(3.33f, 3.33f, 0.0f, false, true, -0.65f, 2.43f) close() - moveTo(136.25f, 75.78f) - lineTo(136.25f, 75.77f) + moveTo(176.25f, 99.78f) + lineTo(176.25f, 99.77f) arcToRelative(0.98f, 0.98f, 0.0f, false, false, 0.13f, -0.73f) arcToRelative(0.98f, 0.98f, 0.0f, false, false, -0.4f, -0.62f) arcToRelative(0.98f, 0.98f, 0.0f, false, false, -0.73f, -0.13f) @@ -1950,7 +1682,7 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector curveToRelative(1.05f, -1.05f, 1.58f, -2.42f, 1.58f, -3.89f) reflectiveCurveToRelative(-0.52f, -2.84f, -1.58f, -3.89f) curveToRelative(-1.05f, -1.05f, -2.42f, -1.58f, -3.89f, -1.58f) - reflectiveCurveToRelative(-2.84f, 0.53f, -3.89f, 1.58f) + reflectiveCurveToRelative(-2.84f, 0.52f, -3.89f, 1.58f) lineToRelative(-0.7f, 0.7f) curveToRelative(-0.19f, 0.19f, -0.31f, 0.44f, -0.35f, 0.7f) arcToRelative(0.9f, 0.9f, 0.0f, false, false, 0.25f, 0.76f) @@ -1970,44 +1702,39 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector } path( fill = SolidColor(Color(0xFFFFFFFF)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(126.9f, 140.77f) + moveTo(166.9f, 164.77f) horizontalLineToRelative(5.36f) - lineTo(132.27f, 142.0f) + lineTo(172.27f, 166.0f) horizontalLineToRelative(-6.79f) verticalLineToRelative(-10.15f) horizontalLineToRelative(1.43f) close() - moveTo(134.55f, 131.85f) + moveTo(174.55f, 155.85f) verticalLineToRelative(1.54f) horizontalLineToRelative(-1.27f) verticalLineToRelative(-1.54f) close() - moveTo(134.55f, 134.47f) - lineTo(134.55f, 142.0f) + moveTo(174.55f, 158.47f) + lineTo(174.55f, 166.0f) horizontalLineToRelative(-1.27f) verticalLineToRelative(-7.53f) close() - moveTo(137.85f, 135.6f) + moveTo(177.85f, 159.6f) curveToRelative(0.43f, -0.71f, 1.16f, -1.26f, 2.44f, -1.26f) curveToRelative(1.82f, 0.0f, 2.48f, 1.18f, 2.48f, 2.9f) - lineTo(142.76f, 142.0f) + lineTo(182.76f, 166.0f) horizontalLineToRelative(-1.27f) verticalLineToRelative(-4.38f) curveToRelative(0.0f, -1.16f, -0.2f, -2.17f, -1.65f, -2.17f) curveToRelative(-1.23f, 0.0f, -1.99f, 0.85f, -1.99f, 2.46f) - lineTo(137.85f, 142.0f) + lineTo(177.85f, 166.0f) horizontalLineToRelative(-1.27f) verticalLineToRelative(-7.53f) horizontalLineToRelative(1.27f) close() - moveTo(145.94f, 131.85f) + moveTo(185.94f, 155.85f) verticalLineToRelative(6.01f) lineToRelative(3.04f, -3.39f) horizontalLineToRelative(1.57f) @@ -2016,7 +1743,7 @@ val AppIllus.ThreeCardsTransferTypeDark: ImageVector horizontalLineToRelative(-1.55f) lineToRelative(-2.56f, -3.47f) lineToRelative(-0.88f, 0.95f) - lineTo(145.94f, 142.0f) + lineTo(185.94f, 166.0f) horizontalLineToRelative(-1.27f) verticalLineToRelative(-10.15f) close() diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeLight.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeLight.kt index 6eab07c46..b9c739dc6 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeLight.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/ThreeCardsTransferTypeLight.kt @@ -1,3 +1,20 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package com.infomaniak.swisstransfer.ui.images.illus.onboarding import androidx.compose.foundation.Image @@ -29,10 +46,10 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } _threeCardsTransferTypeLight = Builder( name = "ThreeCardsTransferTypeLight", - defaultWidth = 296.0.dp, - defaultHeight = 210.0.dp, - viewportWidth = 296.0f, - viewportHeight = 210.0f + defaultWidth = 375.0.dp, + defaultHeight = 258.0.dp, + viewportWidth = 375.0f, + viewportHeight = 258.0f ).apply { path( fill = SolidColor(Color(0x00000000)), @@ -43,9 +60,9 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(270.05f, 200.24f) + moveTo(310.05f, 224.24f) curveToRelative(7.94f, 1.49f, 16.46f, -2.26f, 20.13f, -13.08f) - moveTo(278.15f, 206.6f) + moveTo(318.15f, 230.6f) curveToRelative(5.49f, 1.06f, 11.33f, -1.38f, 13.78f, -8.6f) } path( @@ -57,9 +74,9 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(43.28f, 8.95f) + moveTo(83.28f, 32.95f) curveToRelative(-8.35f, -1.06f, -16.97f, 3.37f, -20.11f, 14.84f) - moveTo(34.47f, 2.83f) + moveTo(74.47f, 26.83f) curveToRelative(-5.77f, -0.76f, -11.69f, 2.14f, -13.79f, 9.79f) } path( @@ -71,47 +88,37 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(148.56f, 49.57f) - lineTo(227.55f, 28.4f) - arcTo(3.06f, 3.06f, 120.0f, false, true, 231.3f, 30.56f) - lineTo(270.87f, 178.24f) - arcTo(3.06f, 3.06f, 120.0f, false, true, 268.71f, 181.99f) - lineTo(189.72f, 203.15f) - arcTo(3.06f, 3.06f, 120.0f, false, true, 185.97f, 200.99f) - lineTo(146.4f, 53.31f) - arcTo(3.06f, 3.06f, 120.0f, false, true, 148.56f, 49.57f) + moveTo(188.56f, 73.57f) + lineTo(267.55f, 52.4f) + arcTo(3.06f, 3.06f, 120.0f, false, true, 271.3f, 54.56f) + lineTo(310.87f, 202.24f) + arcTo(3.06f, 3.06f, 120.0f, false, true, 308.71f, 205.98f) + lineTo(229.72f, 227.15f) + arcTo(3.06f, 3.06f, 120.0f, false, true, 225.97f, 224.99f) + lineTo(186.4f, 77.31f) + arcTo(3.06f, 3.06f, 120.0f, false, true, 188.56f, 73.57f) close() } path( fill = SolidColor(Color(0xFFE3F6DC)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(164.26f, 66.93f) - lineTo(222.64f, 51.29f) - arcTo(1.78f, 1.78f, 120.0f, false, true, 224.82f, 52.54f) - lineTo(242.31f, 117.8f) - arcTo(1.78f, 1.78f, 120.0f, false, true, 241.05f, 119.98f) - lineTo(182.66f, 135.62f) - arcTo(1.78f, 1.78f, 120.0f, false, true, 180.49f, 134.36f) - lineTo(163.0f, 69.11f) - arcTo(1.78f, 1.78f, 120.0f, false, true, 164.26f, 66.93f) + moveTo(204.26f, 90.93f) + lineTo(262.64f, 75.29f) + arcTo(1.78f, 1.78f, 120.0f, false, true, 264.82f, 76.54f) + lineTo(282.31f, 141.8f) + arcTo(1.78f, 1.78f, 120.0f, false, true, 281.05f, 143.97f) + lineTo(222.66f, 159.62f) + arcTo(1.78f, 1.78f, 120.0f, false, true, 220.49f, 158.36f) + lineTo(203.0f, 93.11f) + arcTo(1.78f, 1.78f, 120.0f, false, true, 204.26f, 90.93f) close() } path( fill = SolidColor(Color(0xFFFFFFFF)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(202.65f, 93.45f) + moveTo(242.65f, 117.45f) moveToRelative(-20.61f, 5.52f) arcToRelative(21.33f, 21.33f, 120.0f, true, true, 41.21f, -11.04f) arcToRelative(21.33f, 21.33f, 120.0f, true, true, -41.21f, 11.04f) @@ -125,7 +132,7 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(192.47f, 89.02f) + moveTo(232.47f, 113.02f) curveToRelative(-1.2f, 0.32f, -1.88f, 1.57f, -1.56f, 2.75f) lineToRelative(2.76f, 10.3f) curveToRelative(0.32f, 1.18f, 1.52f, 1.92f, 2.73f, 1.6f) @@ -134,9 +141,9 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector lineToRelative(-2.76f, -10.3f) curveToRelative(-0.32f, -1.18f, -1.52f, -1.92f, -2.73f, -1.6f) close() - moveTo(195.43f, 101.6f) - lineTo(192.86f, 91.98f) - lineTo(202.87f, 96.5f) + moveTo(235.43f, 125.6f) + lineTo(232.86f, 115.98f) + lineTo(242.87f, 120.5f) arcToRelative(0.92f, 0.92f, 0.0f, false, false, 1.12f, -0.3f) lineToRelative(6.41f, -8.92f) lineToRelative(2.58f, 9.62f) @@ -150,18 +157,13 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(210.69f, 150.77f) + moveToRelative(250.69f, 174.77f) lineToRelative(-4.44f, -6.95f) lineToRelative(2.04f, 7.6f) lineToRelative(-1.23f, 0.33f) - lineToRelative(-2.34f, -8.71f) + lineToRelative(-2.34f, -8.72f) lineToRelative(2.06f, -0.55f) lineToRelative(4.17f, 6.66f) lineToRelative(0.28f, -7.86f) @@ -171,7 +173,7 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector lineToRelative(-2.04f, -7.6f) lineToRelative(-0.37f, 8.24f) close() - moveTo(216.67f, 147.34f) + moveTo(256.67f, 171.34f) curveToRelative(-0.41f, -1.53f, 1.19f, -2.43f, 3.77f, -3.44f) lineToRelative(-0.04f, -0.16f) curveToRelative(-0.32f, -1.18f, -1.08f, -1.4f, -1.89f, -1.18f) @@ -184,26 +186,26 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector lineToRelative(-1.11f, 0.3f) arcToRelative(7.0f, 7.0f, 0.0f, false, true, -0.32f, -0.87f) curveToRelative(-0.22f, 0.77f, -0.79f, 1.33f, -1.93f, 1.64f) - curveToRelative(-1.21f, 0.33f, -2.4f, -0.08f, -2.72f, -1.27f) + curveToRelative(-1.21f, 0.32f, -2.4f, -0.08f, -2.72f, -1.27f) moveToRelative(4.08f, -2.6f) curveToRelative(-1.93f, 0.74f, -3.11f, 1.36f, -2.88f, 2.25f) curveToRelative(0.16f, 0.61f, 0.74f, 0.9f, 1.52f, 0.69f) curveToRelative(1.02f, -0.27f, 1.87f, -1.0f, 1.46f, -2.53f) close() - moveTo(222.99f, 138.14f) - lineTo(223.34f, 139.46f) - lineTo(222.25f, 139.75f) - lineTo(221.89f, 138.43f) + moveTo(262.99f, 162.13f) + lineTo(263.34f, 163.46f) + lineTo(262.25f, 163.75f) + lineTo(261.89f, 162.43f) close() - moveTo(223.59f, 140.38f) - lineTo(225.32f, 146.85f) - lineTo(224.23f, 147.14f) - lineTo(222.5f, 140.68f) + moveTo(263.59f, 164.38f) + lineTo(265.32f, 170.85f) + lineTo(264.23f, 171.14f) + lineTo(262.49f, 164.68f) close() - moveTo(228.15f, 146.09f) - lineTo(227.06f, 146.39f) - lineTo(224.72f, 137.67f) - lineTo(225.81f, 137.38f) + moveTo(268.15f, 170.09f) + lineTo(267.06f, 170.38f) + lineTo(264.72f, 161.67f) + lineTo(265.82f, 161.38f) close() } path( @@ -215,52 +217,42 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(44.72f, 28.4f) - lineTo(123.71f, 49.57f) - arcTo(3.06f, 3.06f, 60.0f, false, true, 125.87f, 53.31f) - lineTo(86.3f, 200.99f) - arcTo(3.06f, 3.06f, 60.0f, false, true, 82.56f, 203.15f) - lineTo(3.56f, 181.99f) - arcTo(3.06f, 3.06f, 60.0f, false, true, 1.4f, 178.24f) - lineTo(40.97f, 30.56f) - arcTo(3.06f, 3.06f, 60.0f, false, true, 44.72f, 28.4f) + moveTo(84.72f, 52.4f) + lineTo(163.71f, 73.57f) + arcTo(3.06f, 3.06f, 60.0f, false, true, 165.87f, 77.31f) + lineTo(126.3f, 224.99f) + arcTo(3.06f, 3.06f, 60.0f, false, true, 122.56f, 227.15f) + lineTo(43.56f, 205.99f) + arcTo(3.06f, 3.06f, 60.0f, false, true, 41.4f, 202.24f) + lineTo(80.97f, 54.56f) + arcTo(3.06f, 3.06f, 60.0f, false, true, 84.72f, 52.4f) close() } path( fill = SolidColor(Color(0xFFE3F6DC)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(47.91f, 50.83f) - lineTo(108.01f, 66.93f) - arcTo(1.78f, 1.78f, 60.0f, false, true, 109.27f, 69.11f) - lineTo(91.78f, 134.36f) - arcTo(1.78f, 1.78f, 60.0f, false, true, 89.61f, 135.62f) - lineTo(29.5f, 119.52f) - arcTo(1.78f, 1.78f, 60.0f, false, true, 28.25f, 117.34f) - lineTo(45.73f, 52.09f) - arcTo(1.78f, 1.78f, 60.0f, false, true, 47.91f, 50.83f) + moveTo(87.91f, 74.83f) + lineTo(148.01f, 90.93f) + arcTo(1.78f, 1.78f, 60.0f, false, true, 149.27f, 93.11f) + lineTo(131.78f, 158.36f) + arcTo(1.78f, 1.78f, 60.0f, false, true, 129.61f, 159.62f) + lineTo(69.5f, 143.52f) + arcTo(1.78f, 1.78f, 60.0f, false, true, 68.25f, 141.34f) + lineTo(85.73f, 76.08f) + arcTo(1.78f, 1.78f, 60.0f, false, true, 87.91f, 74.83f) close() } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(56.08f, 69.95f) + moveToRelative(96.08f, 93.95f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(55.53f, 72.01f) + moveTo(95.53f, 96.01f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -268,34 +260,34 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(54.98f, 74.07f) + moveToRelative(94.98f, 98.07f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(54.42f, 76.13f) + moveTo(94.43f, 100.13f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(53.87f, 78.19f) + moveTo(93.87f, 102.19f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(53.32f, 80.25f) + } + path( + fill = SolidColor(Color(0xFF014958)), + pathFillType = NonZero + ) { + moveToRelative(93.32f, 104.25f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(58.14f, 70.5f) + moveTo(98.14f, 94.5f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -303,24 +295,19 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(55.38f, 80.81f) + moveToRelative(95.38f, 104.81f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(60.2f, 71.06f) + moveTo(100.2f, 95.05f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(59.1f, 75.18f) + moveTo(99.1f, 99.17f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -328,29 +315,24 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(58.55f, 77.24f) + moveToRelative(98.55f, 101.23f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(57.44f, 81.36f) + moveTo(97.44f, 105.36f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(62.26f, 71.61f) + moveTo(102.26f, 95.61f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(61.16f, 75.73f) + moveTo(101.16f, 99.73f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -358,24 +340,19 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(60.61f, 77.79f) + moveToRelative(100.61f, 101.79f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(59.5f, 81.91f) + moveTo(99.5f, 105.91f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(64.32f, 72.16f) + moveTo(104.32f, 96.16f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -383,19 +360,19 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(61.56f, 82.46f) + moveToRelative(101.56f, 106.46f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(106.38f, 96.71f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(66.38f, 72.71f) + moveTo(105.83f, 98.77f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -403,19 +380,9 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(65.83f, 74.77f) - lineToRelative(0.55f, -2.06f) - lineToRelative(-2.06f, -0.55f) - lineToRelative(-0.55f, 2.06f) - close() - moveTo(65.28f, 76.83f) + moveToRelative(105.28f, 100.83f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -423,34 +390,29 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(64.73f, 78.89f) + moveToRelative(104.73f, 102.89f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(64.18f, 80.96f) + moveTo(104.18f, 104.95f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(63.62f, 83.01f) - lineToRelative(0.55f, -2.06f) - lineToRelative(-2.06f, -0.55f) - lineToRelative(-0.55f, 2.06f) - close() - moveTo(77.15f, 106.44f) + } + path( + fill = SolidColor(Color(0xFF014958)), + pathFillType = NonZero + ) { + moveToRelative(103.62f, 107.01f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(76.6f, 108.5f) + moveTo(117.15f, 130.44f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -458,19 +420,14 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(76.05f, 110.56f) + moveToRelative(116.6f, 132.5f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(75.5f, 112.63f) + moveTo(116.05f, 134.56f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -478,14 +435,9 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(74.94f, 114.69f) + moveToRelative(115.5f, 136.62f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -493,19 +445,9 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(74.39f, 116.75f) - lineToRelative(0.55f, -2.06f) - lineToRelative(-2.06f, -0.55f) - lineToRelative(-0.55f, 2.06f) - close() - moveTo(79.21f, 107.0f) + moveToRelative(114.94f, 138.68f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -513,24 +455,14 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(76.45f, 117.3f) - lineToRelative(0.55f, -2.06f) - lineToRelative(-2.06f, -0.55f) - lineToRelative(-0.55f, 2.06f) - close() - moveTo(81.27f, 107.55f) + moveToRelative(114.39f, 140.74f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(80.17f, 111.67f) + moveTo(119.21f, 130.99f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -538,39 +470,44 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(79.62f, 113.73f) + moveToRelative(116.45f, 141.29f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(121.27f, 131.54f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(78.51f, 117.85f) + moveTo(120.17f, 135.67f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(83.33f, 108.1f) + } + path( + fill = SolidColor(Color(0xFF014958)), + pathFillType = NonZero + ) { + moveToRelative(119.62f, 137.73f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(82.23f, 112.22f) + moveTo(118.51f, 141.85f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(81.68f, 114.28f) + moveTo(123.33f, 132.1f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(80.57f, 118.4f) + moveTo(122.23f, 136.22f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -578,19 +515,19 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(85.39f, 108.65f) + moveToRelative(121.68f, 138.28f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(82.63f, 118.95f) + moveTo(120.57f, 142.4f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(125.39f, 132.65f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -598,34 +535,24 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(87.46f, 109.2f) + moveToRelative(122.63f, 142.95f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(86.9f, 111.27f) + moveTo(127.46f, 133.2f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - } - path( - fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(86.35f, 113.33f) + moveTo(126.9f, 135.26f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(126.35f, 137.32f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -633,14 +560,9 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(85.8f, 115.39f) + moveToRelative(125.8f, 139.38f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -648,14 +570,9 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(85.25f, 117.45f) + moveToRelative(125.25f, 141.44f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -663,29 +580,24 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(84.69f, 119.51f) + moveToRelative(124.69f, 143.5f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(52.18f, 84.36f) + moveTo(92.18f, 108.36f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(51.62f, 86.42f) + moveTo(91.62f, 110.42f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(51.07f, 88.49f) + moveTo(91.07f, 112.48f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -693,19 +605,14 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(50.52f, 90.54f) + moveToRelative(90.52f, 114.54f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(49.42f, 94.67f) + moveTo(89.42f, 118.67f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -713,24 +620,19 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(48.86f, 96.73f) + moveToRelative(88.86f, 120.73f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(48.31f, 98.79f) + moveTo(88.31f, 122.79f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(47.21f, 102.91f) + moveTo(87.21f, 126.91f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -738,14 +640,9 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(46.65f, 104.97f) + moveToRelative(86.65f, 128.97f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -753,69 +650,64 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(46.1f, 107.03f) + moveToRelative(86.1f, 131.03f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(45.55f, 109.09f) + moveTo(85.55f, 133.09f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(54.24f, 84.92f) + moveTo(94.24f, 108.91f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(53.69f, 86.98f) + moveTo(93.69f, 110.98f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(50.92f, 97.28f) + moveTo(90.93f, 121.28f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(49.82f, 101.4f) + moveTo(89.82f, 125.4f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(48.72f, 105.52f) + moveTo(88.72f, 129.52f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(47.61f, 109.64f) + moveTo(87.61f, 133.64f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(56.3f, 85.47f) + moveTo(96.3f, 109.47f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(54.64f, 91.65f) + moveTo(94.64f, 115.65f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(52.43f, 99.89f) + moveTo(92.43f, 123.89f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(51.88f, 101.95f) + moveTo(91.88f, 125.95f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -823,19 +715,14 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(51.33f, 104.01f) + moveToRelative(91.33f, 128.01f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(50.22f, 108.13f) + moveTo(90.22f, 132.13f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -843,39 +730,44 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(49.67f, 110.19f) + moveToRelative(89.67f, 134.19f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(56.15f, 94.26f) + moveTo(96.15f, 118.26f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(55.05f, 98.38f) + moveTo(95.05f, 122.38f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(54.49f, 100.44f) + moveTo(94.49f, 124.44f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(53.94f, 102.5f) + } + path( + fill = SolidColor(Color(0xFF014958)), + pathFillType = NonZero + ) { + moveToRelative(93.94f, 126.5f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(53.39f, 104.57f) + } + path( + fill = SolidColor(Color(0xFF014958)), + pathFillType = NonZero + ) { + moveToRelative(93.39f, 128.56f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -883,34 +775,29 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(52.84f, 106.63f) + moveToRelative(92.84f, 130.63f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(52.28f, 108.69f) + moveTo(92.29f, 132.69f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(51.73f, 110.75f) + moveTo(91.73f, 134.75f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(60.42f, 86.57f) + moveTo(100.42f, 110.57f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(59.87f, 88.63f) + moveTo(99.87f, 112.63f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -918,34 +805,29 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(59.31f, 90.69f) + moveToRelative(99.32f, 114.69f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(58.76f, 92.75f) + moveTo(98.76f, 116.75f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(56.0f, 103.06f) + moveTo(96.0f, 127.06f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(55.45f, 105.12f) + moveTo(95.45f, 129.12f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(54.34f, 109.24f) + moveTo(94.34f, 133.24f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -953,29 +835,24 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(60.82f, 93.31f) + moveToRelative(100.82f, 117.31f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(60.27f, 95.37f) + moveTo(100.27f, 119.36f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(58.62f, 101.55f) + moveTo(98.61f, 125.55f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(58.06f, 103.61f) + moveTo(98.06f, 127.61f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -983,74 +860,64 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(57.51f, 105.67f) + moveToRelative(97.51f, 129.67f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(55.85f, 111.85f) + moveTo(95.85f, 135.85f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(61.23f, 100.04f) + moveTo(101.23f, 124.04f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - } - path( - fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(59.57f, 106.22f) + moveTo(99.57f, 130.22f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(58.47f, 110.34f) + moveTo(98.47f, 134.34f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(70.47f, 73.8f) + moveTo(110.47f, 97.8f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(67.71f, 84.11f) + moveTo(107.71f, 108.11f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(62.5f, 87.14f) + moveTo(102.5f, 111.14f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(63.29f, 100.59f) + } + path( + fill = SolidColor(Color(0xFF014958)), + pathFillType = NonZero + ) { + moveToRelative(103.29f, 124.59f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(62.18f, 104.71f) + moveTo(102.18f, 128.71f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(61.63f, 106.77f) + moveTo(101.63f, 130.77f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1058,24 +925,19 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(61.08f, 108.83f) + moveToRelative(101.08f, 132.83f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(59.97f, 112.96f) + moveTo(99.97f, 136.95f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(72.53f, 74.36f) + moveTo(112.53f, 98.36f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1083,29 +945,34 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(71.97f, 76.42f) + moveToRelative(111.97f, 100.42f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(71.42f, 78.48f) + } + path( + fill = SolidColor(Color(0xFF014958)), + pathFillType = NonZero + ) { + moveToRelative(111.42f, 102.48f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(70.87f, 80.54f) + moveTo(110.87f, 104.54f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(70.32f, 82.6f) + } + path( + fill = SolidColor(Color(0xFF014958)), + pathFillType = NonZero + ) { + moveToRelative(110.32f, 106.6f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1113,69 +980,64 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(69.77f, 84.66f) + moveToRelative(109.77f, 108.66f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(66.23f, 110.21f) + moveTo(106.23f, 134.21f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(62.59f, 111.45f) + moveTo(102.59f, 135.45f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - } - path( - fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(62.04f, 113.51f) + moveTo(102.04f, 137.51f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(74.59f, 74.91f) + moveTo(114.59f, 98.91f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(74.04f, 76.97f) + moveTo(114.04f, 100.97f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(72.38f, 83.15f) + } + path( + fill = SolidColor(Color(0xFF014958)), + pathFillType = NonZero + ) { + moveToRelative(112.38f, 107.15f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(71.83f, 85.21f) + } + path( + fill = SolidColor(Color(0xFF014958)), + pathFillType = NonZero + ) { + moveToRelative(111.83f, 109.21f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(64.56f, 87.69f) + moveTo(104.56f, 111.69f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(65.2f, 109.94f) + moveTo(105.2f, 133.94f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1183,14 +1045,9 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(64.65f, 112.0f) + moveToRelative(104.65f, 136.0f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1198,19 +1055,14 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(64.1f, 114.06f) + moveToRelative(104.1f, 138.06f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(75.54f, 79.58f) + moveTo(115.54f, 103.58f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1218,24 +1070,19 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(74.99f, 81.64f) + moveToRelative(114.99f, 105.64f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(61.72f, 97.97f) + moveTo(101.72f, 121.97f) lineToRelative(0.55f, -2.06f) - lineToRelative(-1.99f, -0.53f) + lineToRelative(-1.98f, -0.53f) lineToRelative(-0.55f, 2.06f) close() - moveTo(68.37f, 106.37f) + moveTo(108.37f, 130.37f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1243,34 +1090,19 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(66.87f, 103.77f) + moveToRelative(106.87f, 127.77f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(67.81f, 108.43f) + moveTo(107.81f, 132.43f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - } - path( - fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(67.26f, 110.49f) + moveTo(107.26f, 134.49f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1278,54 +1110,39 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(66.71f, 112.55f) + moveToRelative(106.71f, 136.55f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - } - path( - fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(66.16f, 114.61f) + moveTo(106.16f, 138.61f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(78.71f, 76.01f) + moveTo(118.71f, 100.01f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(77.6f, 80.13f) + moveTo(117.6f, 104.13f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(77.05f, 82.19f) + moveTo(117.05f, 106.19f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(75.95f, 86.32f) + moveTo(115.95f, 110.31f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(71.0f, 104.87f) + moveTo(111.0f, 128.87f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1333,89 +1150,84 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(70.43f, 106.92f) + moveToRelative(110.43f, 130.92f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(79.67f, 80.69f) + moveTo(119.67f, 104.69f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(78.56f, 84.81f) + moveTo(118.56f, 108.81f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(78.01f, 86.87f) + } + path( + fill = SolidColor(Color(0xFF014958)), + pathFillType = NonZero + ) { + moveToRelative(118.01f, 110.87f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(77.47f, 88.94f) + moveTo(117.47f, 112.94f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(78.98f, 91.55f) + moveTo(118.98f, 115.55f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(76.22f, 101.86f) + moveTo(116.22f, 125.86f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(64.81f, 103.22f) + moveTo(104.81f, 127.22f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(73.59f, 103.35f) + moveTo(113.59f, 127.35f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(73.04f, 105.41f) + moveTo(113.04f, 129.41f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(71.93f, 109.54f) + moveTo(111.93f, 133.53f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - } - path( - fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveToRelative(71.38f, 111.6f) + moveTo(111.38f, 135.59f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(110.83f, 137.65f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(70.83f, 113.66f) + moveTo(124.89f, 101.67f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(84.89f, 77.67f) + moveTo(124.34f, 103.73f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1423,29 +1235,24 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(84.34f, 79.73f) + moveToRelative(123.79f, 105.79f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(83.79f, 81.79f) + moveTo(123.23f, 107.85f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(83.23f, 83.85f) - lineToRelative(0.55f, -2.06f) - lineToRelative(-2.06f, -0.55f) - lineToRelative(-0.55f, 2.06f) - close() - moveTo(82.68f, 85.91f) + } + path( + fill = SolidColor(Color(0xFF014958)), + pathFillType = NonZero + ) { + moveToRelative(122.68f, 109.91f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1453,44 +1260,39 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(82.13f, 87.97f) + moveToRelative(122.13f, 111.97f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(81.03f, 92.09f) + moveTo(121.03f, 116.09f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(80.47f, 94.15f) + moveTo(120.47f, 118.15f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(79.37f, 98.28f) + moveTo(119.37f, 122.28f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(78.82f, 100.34f) + moveTo(118.82f, 124.34f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(78.26f, 102.4f) + moveTo(118.26f, 126.4f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(86.95f, 78.22f) + moveTo(126.95f, 102.22f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1498,19 +1300,14 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(84.19f, 88.52f) + moveToRelative(124.19f, 112.52f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(82.53f, 94.71f) + moveTo(122.53f, 118.71f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1518,34 +1315,29 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(81.98f, 96.77f) + moveToRelative(121.98f, 120.77f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(81.43f, 98.83f) + moveTo(121.43f, 122.83f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(80.32f, 102.95f) + moveTo(120.32f, 126.95f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(89.01f, 78.77f) + moveTo(129.01f, 102.77f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(87.91f, 82.89f) + moveTo(127.91f, 106.89f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1553,29 +1345,24 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(87.36f, 84.96f) + moveToRelative(127.36f, 108.95f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(86.25f, 89.08f) + moveTo(126.25f, 113.08f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(84.59f, 95.26f) + moveTo(124.59f, 119.26f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(84.04f, 97.32f) + moveTo(124.04f, 121.32f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1583,19 +1370,14 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(83.49f, 99.38f) + moveToRelative(123.49f, 123.38f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(82.94f, 101.44f) + moveTo(122.94f, 125.44f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1603,24 +1385,19 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(82.39f, 103.5f) + moveToRelative(122.39f, 127.5f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(91.07f, 79.32f) + moveTo(131.07f, 103.32f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(89.97f, 83.45f) + moveTo(129.97f, 107.44f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1628,34 +1405,29 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(89.42f, 85.51f) + moveToRelative(129.42f, 109.51f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(88.31f, 89.63f) + moveTo(128.31f, 113.63f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(87.21f, 93.75f) + moveTo(127.21f, 117.75f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(85.55f, 99.93f) + moveTo(125.55f, 123.93f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(93.13f, 79.88f) + moveTo(133.13f, 103.88f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1663,19 +1435,19 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(90.37f, 90.18f) + moveToRelative(130.37f, 114.18f) + lineToRelative(0.55f, -2.06f) + lineToRelative(-2.06f, -0.55f) + lineToRelative(-0.55f, 2.06f) + close() + moveTo(129.27f, 118.3f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(89.27f, 94.3f) + moveTo(128.71f, 120.36f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1683,24 +1455,14 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(88.71f, 96.36f) - lineToRelative(0.55f, -2.06f) - lineToRelative(-2.06f, -0.55f) - lineToRelative(-0.55f, 2.06f) - close() - moveTo(88.16f, 98.42f) + moveToRelative(128.16f, 122.42f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(87.61f, 100.48f) + moveTo(127.61f, 124.48f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1708,24 +1470,19 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(87.06f, 102.54f) + moveToRelative(127.06f, 126.54f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(86.51f, 104.61f) + moveTo(126.51f, 128.6f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(95.19f, 80.43f) + moveTo(135.19f, 104.43f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1733,19 +1490,14 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(94.64f, 82.49f) + moveToRelative(134.64f, 106.49f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(94.09f, 84.55f) + moveTo(134.09f, 108.55f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) @@ -1753,52 +1505,47 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(93.54f, 86.61f) + moveToRelative(133.54f, 110.61f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(92.99f, 88.67f) + moveTo(132.99f, 112.67f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(92.43f, 90.73f) + moveTo(132.43f, 114.73f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(90.22f, 98.98f) + moveTo(130.22f, 122.97f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(89.12f, 103.1f) + moveTo(129.12f, 127.1f) lineToRelative(0.55f, -2.06f) lineToRelative(-2.06f, -0.55f) lineToRelative(-0.55f, 2.06f) close() - moveTo(75.42f, 88.91f) - lineTo(67.0f, 86.65f) + moveTo(115.42f, 112.91f) + lineToRelative(-8.42f, -2.26f) curveToRelative(-0.58f, -0.16f, -1.19f, 0.22f, -1.36f, 0.85f) lineToRelative(-2.42f, 9.03f) curveToRelative(-0.17f, 0.62f, 0.17f, 1.25f, 0.75f, 1.41f) - lineTo(72.4f, 100.2f) + lineToRelative(8.42f, 2.26f) curveToRelative(0.58f, 0.16f, 1.19f, -0.22f, 1.36f, -0.85f) lineToRelative(2.42f, -9.03f) - curveToRelative(0.17f, -0.62f, -0.17f, -1.26f, -0.75f, -1.41f) - moveTo(54.04f, 147.46f) + curveToRelative(0.17f, -0.62f, -0.17f, -1.25f, -0.75f, -1.41f) + moveTo(94.04f, 171.46f) lineToRelative(0.76f, 1.31f) lineToRelative(-0.94f, 0.55f) lineToRelative(-0.78f, -1.36f) - curveToRelative(-0.74f, 0.25f, -1.57f, 0.28f, -2.44f, 0.04f) + curveToRelative(-0.74f, 0.25f, -1.57f, 0.28f, -2.45f, 0.04f) curveToRelative(-2.51f, -0.67f, -3.58f, -2.98f, -2.88f, -5.61f) curveToRelative(0.7f, -2.63f, 2.78f, -4.09f, 5.29f, -3.41f) curveToRelative(2.51f, 0.67f, 3.59f, 2.97f, 2.88f, 5.6f) @@ -1809,11 +1556,11 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector lineToRelative(0.95f, -0.56f) lineToRelative(0.59f, 1.03f) curveToRelative(0.55f, -0.47f, 0.99f, -1.18f, 1.25f, -2.15f) - curveToRelative(0.6f, -2.25f, -0.32f, -3.81f, -1.91f, -4.23f) - curveToRelative(-1.59f, -0.43f, -3.17f, 0.47f, -3.77f, 2.71f) + curveToRelative(0.6f, -2.25f, -0.32f, -3.81f, -1.9f, -4.23f) + reflectiveCurveToRelative(-3.17f, 0.47f, -3.77f, 2.71f) reflectiveCurveToRelative(0.32f, 3.82f, 1.9f, 4.25f) moveToRelative(9.91f, -0.35f) - curveToRelative(-0.22f, -0.05f, -0.44f, -0.1f, -0.66f, -0.17f) + arcToRelative(13.0f, 13.0f, 0.0f, false, true, -0.66f, -0.17f) lineToRelative(-1.54f, -0.41f) lineToRelative(-0.98f, 3.67f) lineToRelative(-1.23f, -0.33f) @@ -1824,9 +1571,9 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector lineToRelative(0.98f, 4.41f) lineToRelative(-1.37f, -0.37f) close() - moveTo(59.69f, 142.03f) - lineTo(58.89f, 145.01f) - lineTo(60.52f, 145.45f) + moveTo(99.69f, 166.03f) + lineTo(98.89f, 169.01f) + lineTo(100.53f, 169.45f) curveToRelative(1.27f, 0.34f, 2.31f, 0.48f, 2.67f, -0.87f) reflectiveCurveToRelative(-0.6f, -1.77f, -1.87f, -2.11f) close() @@ -1840,47 +1587,37 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(91.0f, 13.5f) - lineTo(183.0f, 13.5f) - arcTo(3.5f, 3.5f, 0.0f, false, true, 186.5f, 17.0f) - lineTo(186.5f, 189.0f) - arcTo(3.5f, 3.5f, 0.0f, false, true, 183.0f, 192.5f) - lineTo(91.0f, 192.5f) - arcTo(3.5f, 3.5f, 0.0f, false, true, 87.5f, 189.0f) - lineTo(87.5f, 17.0f) - arcTo(3.5f, 3.5f, 0.0f, false, true, 91.0f, 13.5f) + moveTo(131.0f, 37.5f) + lineTo(223.0f, 37.5f) + arcTo(3.5f, 3.5f, 0.0f, false, true, 226.5f, 41.0f) + lineTo(226.5f, 213.0f) + arcTo(3.5f, 3.5f, 0.0f, false, true, 223.0f, 216.5f) + lineTo(131.0f, 216.5f) + arcTo(3.5f, 3.5f, 0.0f, false, true, 127.5f, 213.0f) + lineTo(127.5f, 41.0f) + arcTo(3.5f, 3.5f, 0.0f, false, true, 131.0f, 37.5f) close() } path( fill = SolidColor(Color(0xFFE3F6DC)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(103.0f, 37.0f) - lineTo(171.0f, 37.0f) - arcTo(2.0f, 2.0f, 0.0f, false, true, 173.0f, 39.0f) - lineTo(173.0f, 115.0f) - arcTo(2.0f, 2.0f, 0.0f, false, true, 171.0f, 117.0f) - lineTo(103.0f, 117.0f) - arcTo(2.0f, 2.0f, 0.0f, false, true, 101.0f, 115.0f) - lineTo(101.0f, 39.0f) - arcTo(2.0f, 2.0f, 0.0f, false, true, 103.0f, 37.0f) + moveTo(143.0f, 61.0f) + lineTo(211.0f, 61.0f) + arcTo(2.0f, 2.0f, 0.0f, false, true, 213.0f, 63.0f) + lineTo(213.0f, 139.0f) + arcTo(2.0f, 2.0f, 0.0f, false, true, 211.0f, 141.0f) + lineTo(143.0f, 141.0f) + arcTo(2.0f, 2.0f, 0.0f, false, true, 141.0f, 139.0f) + lineTo(141.0f, 63.0f) + arcTo(2.0f, 2.0f, 0.0f, false, true, 143.0f, 61.0f) close() } path( fill = SolidColor(Color(0xFFFFFFFF)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(137.0f, 77.0f) + moveTo(177.0f, 101.0f) moveToRelative(-24.0f, 0.0f) arcToRelative(24.0f, 24.0f, 0.0f, true, true, 48.0f, 0.0f) arcToRelative(24.0f, 24.0f, 0.0f, true, true, -48.0f, 0.0f) @@ -1894,12 +1631,12 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(137.85f, 79.0f) + moveToRelative(177.85f, 103.0f) lineToRelative(-0.01f, 0.01f) arcToRelative(0.98f, 0.98f, 0.0f, false, false, -0.13f, 0.73f) arcToRelative(0.98f, 0.98f, 0.0f, false, false, 0.4f, 0.62f) - curveToRelative(0.22f, 0.15f, 0.49f, 0.17f, 0.73f, 0.13f) - arcToRelative(0.98f, 0.98f, 0.0f, false, false, 0.62f, -0.39f) + curveToRelative(0.22f, 0.14f, 0.49f, 0.17f, 0.73f, 0.13f) + arcToRelative(0.97f, 0.97f, 0.0f, false, false, 0.62f, -0.39f) curveToRelative(0.83f, -1.14f, 1.26f, -2.51f, 1.05f, -3.89f) curveToRelative(-0.11f, -1.38f, -0.85f, -2.64f, -1.89f, -3.57f) curveToRelative(-1.05f, -0.94f, -2.41f, -1.47f, -3.79f, -1.37f) @@ -1916,17 +1653,17 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector lineToRelative(-0.9f, 1.0f) curveToRelative(-1.31f, 1.3f, -3.65f, 1.3f, -4.96f, 0.0f) curveToRelative(-0.67f, -0.77f, -1.04f, -1.61f, -1.04f, -2.54f) - curveToRelative(0.0f, -0.94f, 0.38f, -1.88f, 1.03f, -2.54f) + curveToRelative(0.0f, -0.94f, 0.38f, -1.88f, 1.03f, -2.53f) lineToRelative(4.82f, -4.82f) curveToRelative(0.55f, -0.55f, 1.39f, -0.93f, 2.35f, -1.03f) curveToRelative(0.84f, 0.0f, 1.66f, 0.28f, 2.3f, 1.11f) lineToRelative(0.01f, 0.02f) lineToRelative(0.02f, 0.02f) curveToRelative(0.66f, 0.56f, 1.13f, 1.41f, 1.22f, 2.25f) - arcToRelative(3.34f, 3.34f, 0.0f, false, true, -0.65f, 2.43f) + arcToRelative(3.33f, 3.33f, 0.0f, false, true, -0.65f, 2.43f) close() - moveTo(136.25f, 75.78f) - lineTo(136.25f, 75.77f) + moveTo(176.25f, 99.78f) + lineTo(176.25f, 99.77f) arcToRelative(0.98f, 0.98f, 0.0f, false, false, 0.13f, -0.73f) arcToRelative(0.98f, 0.98f, 0.0f, false, false, -0.4f, -0.62f) arcToRelative(0.98f, 0.98f, 0.0f, false, false, -0.73f, -0.13f) @@ -1940,7 +1677,7 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector curveToRelative(1.05f, -1.05f, 1.58f, -2.42f, 1.58f, -3.89f) reflectiveCurveToRelative(-0.52f, -2.84f, -1.58f, -3.89f) curveToRelative(-1.05f, -1.05f, -2.42f, -1.58f, -3.89f, -1.58f) - reflectiveCurveToRelative(-2.84f, 0.53f, -3.89f, 1.58f) + reflectiveCurveToRelative(-2.84f, 0.52f, -3.89f, 1.58f) lineToRelative(-0.7f, 0.7f) curveToRelative(-0.19f, 0.19f, -0.31f, 0.44f, -0.35f, 0.7f) arcToRelative(0.9f, 0.9f, 0.0f, false, false, 0.25f, 0.76f) @@ -1960,44 +1697,39 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector } path( fill = SolidColor(Color(0xFFFFFFFF)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(126.9f, 140.77f) + moveTo(166.9f, 164.77f) horizontalLineToRelative(5.36f) - lineTo(132.27f, 142.0f) + lineTo(172.27f, 166.0f) horizontalLineToRelative(-6.79f) verticalLineToRelative(-10.15f) horizontalLineToRelative(1.43f) close() - moveTo(134.55f, 131.85f) + moveTo(174.55f, 155.85f) verticalLineToRelative(1.54f) horizontalLineToRelative(-1.27f) verticalLineToRelative(-1.54f) close() - moveTo(134.55f, 134.47f) - lineTo(134.55f, 142.0f) + moveTo(174.55f, 158.47f) + lineTo(174.55f, 166.0f) horizontalLineToRelative(-1.27f) verticalLineToRelative(-7.53f) close() - moveTo(137.85f, 135.6f) + moveTo(177.85f, 159.6f) curveToRelative(0.43f, -0.71f, 1.16f, -1.26f, 2.44f, -1.26f) curveToRelative(1.82f, 0.0f, 2.48f, 1.18f, 2.48f, 2.9f) - lineTo(142.76f, 142.0f) + lineTo(182.76f, 166.0f) horizontalLineToRelative(-1.27f) verticalLineToRelative(-4.38f) curveToRelative(0.0f, -1.16f, -0.2f, -2.17f, -1.65f, -2.17f) curveToRelative(-1.23f, 0.0f, -1.99f, 0.85f, -1.99f, 2.46f) - lineTo(137.85f, 142.0f) + lineTo(177.85f, 166.0f) horizontalLineToRelative(-1.27f) verticalLineToRelative(-7.53f) horizontalLineToRelative(1.27f) close() - moveTo(145.94f, 131.85f) + moveTo(185.94f, 155.85f) verticalLineToRelative(6.01f) lineToRelative(3.04f, -3.39f) horizontalLineToRelative(1.57f) @@ -2006,7 +1738,7 @@ val AppIllus.ThreeCardsTransferTypeLight: ImageVector horizontalLineToRelative(-1.55f) lineToRelative(-2.56f, -3.47f) lineToRelative(-0.88f, 0.95f) - lineTo(145.94f, 142.0f) + lineTo(185.94f, 166.0f) horizontalLineToRelative(-1.27f) verticalLineToRelative(-10.15f) close() diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStars.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoLocksIntertwinedStars.kt similarity index 82% rename from app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStars.kt rename to app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoLocksIntertwinedStars.kt index 14ac39510..ed621d4c1 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStars.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoLocksIntertwinedStars.kt @@ -32,13 +32,13 @@ import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus import com.infomaniak.swisstransfer.ui.images.ThemedImage import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme -val AppIllus.TwoPadlocksIntertwinedStars: ThemedImage - get() = _twoPadlocksIntertwinedStars ?: object : ThemedImage { - override val light = AppIllus.TwoPadlocksIntertwinedStarsLight - override val dark = AppIllus.TwoPadlocksIntertwinedStarsDark - }.also { _twoPadlocksIntertwinedStars = it } +val AppIllus.TwoLocksIntertwinedStars: ThemedImage + get() = _twoLocksIntertwinedStars ?: object : ThemedImage { + override val light = AppIllus.TwoLocksIntertwinedStarsLight + override val dark = AppIllus.TwoLocksIntertwinedStarsDark + }.also { _twoLocksIntertwinedStars = it } -private var _twoPadlocksIntertwinedStars: ThemedImage? = null +private var _twoLocksIntertwinedStars: ThemedImage? = null @Preview(name = "Light") @Preview(name = "Dark", uiMode = Configuration.UI_MODE_NIGHT_YES or Configuration.UI_MODE_TYPE_NORMAL) @@ -46,7 +46,7 @@ private var _twoPadlocksIntertwinedStars: ThemedImage? = null private fun Preview() { SwissTransferTheme { Surface { - val imageVector = AppIllus.TwoPadlocksIntertwinedStars.image() + val imageVector = AppIllus.TwoLocksIntertwinedStars.image() Box { Image( imageVector = imageVector, diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsDark.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoLocksIntertwinedStarsDark.kt similarity index 64% rename from app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsDark.kt rename to app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoLocksIntertwinedStarsDark.kt index 1513e5598..8e2e4b71b 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsDark.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoLocksIntertwinedStarsDark.kt @@ -1,3 +1,20 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package com.infomaniak.swisstransfer.ui.images.illus.onboarding import androidx.compose.foundation.Image @@ -20,17 +37,17 @@ import androidx.compose.ui.unit.dp import com.infomaniak.swisstransfer.ui.images.AppImages import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus -val AppIllus.TwoPadlocksIntertwinedStarsDark: ImageVector +val AppIllus.TwoLocksIntertwinedStarsDark: ImageVector get() { - if (_twoPadlocksIntertwinedStarsDark != null) { - return _twoPadlocksIntertwinedStarsDark!! + if (_twoLocksIntertwinedStarsDark != null) { + return _twoLocksIntertwinedStarsDark!! } - _twoPadlocksIntertwinedStarsDark = Builder( - name = "TwoPadlocksIntertwinedStarsDark", - defaultWidth = 240.0.dp, - defaultHeight = 192.0.dp, - viewportWidth = 240.0f, - viewportHeight = 192.0f + _twoLocksIntertwinedStarsDark = Builder( + name = "TwoLocksIntertwinedStarsDark", + defaultWidth = 375.0.dp, + defaultHeight = 258.0.dp, + viewportWidth = 375.0f, + viewportHeight = 258.0f ).apply { path( fill = SolidColor(Color(0x00000000)), @@ -41,15 +58,15 @@ val AppIllus.TwoPadlocksIntertwinedStarsDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(124.45f, 89.52f) - lineTo(124.45f, 89.52f) - arcTo(27.3f, 27.3f, 56.26f, false, true, 116.99f, 127.39f) - lineTo(90.87f, 144.91f) - arcTo(27.3f, 27.3f, 56.26f, false, true, 53.0f, 137.45f) - lineTo(53.0f, 137.45f) - arcTo(27.3f, 27.3f, 56.26f, false, true, 60.46f, 99.58f) - lineTo(86.58f, 82.06f) - arcTo(27.3f, 27.3f, 56.26f, false, true, 124.45f, 89.52f) + moveTo(194.45f, 121.52f) + lineTo(194.45f, 121.52f) + arcTo(27.3f, 27.3f, 56.26f, false, true, 186.99f, 159.39f) + lineTo(160.87f, 176.91f) + arcTo(27.3f, 27.3f, 56.26f, false, true, 123.0f, 169.45f) + lineTo(123.0f, 169.45f) + arcTo(27.3f, 27.3f, 56.26f, false, true, 130.46f, 131.58f) + lineTo(156.58f, 114.06f) + arcTo(27.3f, 27.3f, 56.26f, false, true, 194.45f, 121.52f) close() } path( @@ -61,27 +78,22 @@ val AppIllus.TwoPadlocksIntertwinedStarsDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(183.29f, 139.5f) - lineTo(183.29f, 139.5f) - arcTo(27.3f, 27.3f, 120.47f, false, true, 145.94f, 149.26f) - lineTo(118.8f, 133.36f) - arcTo(27.3f, 27.3f, 120.47f, false, true, 109.04f, 96.02f) - lineTo(109.04f, 96.02f) - arcTo(27.3f, 27.3f, 120.47f, false, true, 146.39f, 86.26f) - lineTo(173.53f, 102.15f) - arcTo(27.3f, 27.3f, 120.47f, false, true, 183.29f, 139.5f) + moveTo(253.29f, 171.5f) + lineTo(253.29f, 171.5f) + arcTo(27.3f, 27.3f, 120.47f, false, true, 215.94f, 181.26f) + lineTo(188.8f, 165.36f) + arcTo(27.3f, 27.3f, 120.47f, false, true, 179.04f, 128.02f) + lineTo(179.04f, 128.02f) + arcTo(27.3f, 27.3f, 120.47f, false, true, 216.39f, 118.26f) + lineTo(243.53f, 134.15f) + arcTo(27.3f, 27.3f, 120.47f, false, true, 253.29f, 171.5f) close() } path( fill = SolidColor(Color(0xFF67DD95)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(117.85f, 121.01f) + moveToRelative(187.85f, 153.01f) lineToRelative(4.43f, 8.51f) lineToRelative(-16.53f, 11.3f) lineToRelative(-5.41f, -8.06f) @@ -96,13 +108,13 @@ val AppIllus.TwoPadlocksIntertwinedStarsDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(55.47f, 87.07f) + moveTo(125.47f, 119.07f) arcToRelative(7.65f, 7.65f, 0.0f, false, true, 10.61f, 2.09f) lineToRelative(36.56f, 54.5f) arcToRelative(7.65f, 7.65f, 0.0f, false, true, -2.09f, 10.61f) lineToRelative(-48.43f, 32.49f) arcToRelative(7.65f, 7.65f, 0.0f, false, true, -10.61f, -2.09f) - lineTo(4.95f, 130.17f) + lineToRelative(-36.56f, -54.5f) arcToRelative(7.65f, 7.65f, 0.0f, false, true, 2.09f, -10.61f) close() } @@ -115,18 +127,21 @@ val AppIllus.TwoPadlocksIntertwinedStarsDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(49.01f, 135.59f) + moveToRelative(117.45f, 167.59f) lineToRelative(0.01f, 0.3f) lineToRelative(-0.26f, 0.15f) - lineToRelative(-5.6f, 3.23f) - arcToRelative(3.32f, 3.32f, 0.0f, false, false, 3.32f, 5.76f) - lineToRelative(5.6f, -3.23f) - lineToRelative(0.26f, -0.15f) - lineToRelative(0.25f, 0.16f) - arcToRelative(7.76f, 7.76f, 0.0f, true, false, 0.28f, -13.27f) + lineToRelative(-5.53f, 3.23f) + curveToRelative(-1.57f, 0.92f, -2.11f, 2.95f, -1.2f, 4.54f) + arcToRelative(3.25f, 3.25f, 0.0f, false, false, 4.47f, 1.22f) + lineToRelative(5.53f, -3.23f) + lineToRelative(0.26f, -0.16f) + lineToRelative(0.26f, 0.17f) + arcToRelative(7.56f, 7.56f, 0.0f, false, false, 7.93f, 0.17f) + curveToRelative(3.66f, -2.14f, 4.92f, -6.89f, 2.8f, -10.61f) + curveToRelative(-2.12f, -3.71f, -6.79f, -4.98f, -10.45f, -2.84f) lineToRelative(-0.25f, -0.43f) lineToRelative(0.25f, 0.43f) - arcToRelative(7.76f, 7.76f, 0.0f, false, false, -3.88f, 7.05f) + curveToRelative(-2.55f, 1.49f, -3.94f, 4.26f, -3.82f, 7.05f) close() } path( @@ -138,7 +153,7 @@ val AppIllus.TwoPadlocksIntertwinedStarsDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(232.7f, 117.28f) + moveTo(302.7f, 149.28f) arcToRelative(7.65f, 7.65f, 0.0f, false, true, 2.77f, 10.45f) lineToRelative(-32.96f, 56.75f) arcToRelative(7.65f, 7.65f, 0.0f, false, true, -10.45f, 2.77f) @@ -157,31 +172,28 @@ val AppIllus.TwoPadlocksIntertwinedStarsDark: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(189.02f, 134.59f) + moveToRelative(255.61f, 166.59f) lineToRelative(-0.01f, 0.3f) lineToRelative(0.26f, 0.15f) - lineToRelative(5.6f, 3.23f) - arcToRelative(3.32f, 3.32f, 0.0f, false, true, -3.32f, 5.76f) - lineToRelative(-5.6f, -3.23f) - lineToRelative(-0.26f, -0.15f) - lineToRelative(-0.26f, 0.16f) - arcToRelative(7.76f, 7.76f, 0.0f, false, true, -10.89f, -10.43f) - arcToRelative(7.76f, 7.76f, 0.0f, false, true, 10.6f, -2.84f) + lineToRelative(5.53f, 3.23f) + curveToRelative(1.57f, 0.92f, 2.11f, 2.95f, 1.2f, 4.54f) + arcToRelative(3.25f, 3.25f, 0.0f, false, true, -4.47f, 1.22f) + lineToRelative(-5.53f, -3.23f) + lineToRelative(-0.26f, -0.16f) + lineToRelative(-0.26f, 0.17f) + arcToRelative(7.56f, 7.56f, 0.0f, false, true, -7.93f, 0.17f) + curveToRelative(-3.66f, -2.14f, -4.92f, -6.89f, -2.8f, -10.61f) + curveToRelative(2.12f, -3.71f, 6.79f, -4.98f, 10.45f, -2.84f) lineToRelative(0.25f, -0.43f) lineToRelative(-0.25f, 0.43f) - arcToRelative(7.76f, 7.76f, 0.0f, false, true, 3.88f, 7.05f) + curveToRelative(2.55f, 1.49f, 3.94f, 4.26f, 3.82f, 7.05f) close() } path( fill = SolidColor(Color(0xFF67DD95)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(109.05f, 14.08f) + moveToRelative(179.05f, 46.08f) lineToRelative(2.95f, -9.28f) lineToRelative(-4.76f, -1.51f) lineToRelative(-2.95f, 9.28f) @@ -200,14 +212,9 @@ val AppIllus.TwoPadlocksIntertwinedStarsDark: ImageVector } path( fill = SolidColor(Color(0xFFDCE4E5)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(80.06f, 52.37f) + moveToRelative(150.06f, 84.37f) lineToRelative(1.02f, -3.23f) lineToRelative(-1.65f, -0.52f) lineToRelative(-1.03f, 3.23f) @@ -220,16 +227,16 @@ val AppIllus.TwoPadlocksIntertwinedStarsDark: ImageVector lineToRelative(1.14f, 3.38f) lineToRelative(1.55f, -0.55f) lineToRelative(-1.04f, -3.23f) - lineToRelative(3.46f, -0.09f) + lineToRelative(3.47f, -0.09f) lineToRelative(-0.14f, -1.72f) close() - moveTo(148.2f, 33.79f) + moveTo(218.2f, 65.79f) lineToRelative(1.53f, -4.82f) lineToRelative(-2.47f, -0.79f) lineToRelative(-1.53f, 4.82f) lineToRelative(-4.03f, -3.2f) lineToRelative(-1.53f, 2.01f) - lineToRelative(4.06f, 3.07f) + lineToRelative(4.06f, 3.08f) lineToRelative(-4.1f, 3.07f) lineToRelative(1.71f, 2.06f) lineToRelative(4.05f, -3.22f) @@ -241,15 +248,15 @@ val AppIllus.TwoPadlocksIntertwinedStarsDark: ImageVector close() } }.build() - return _twoPadlocksIntertwinedStarsDark!! + return _twoLocksIntertwinedStarsDark!! } -private var _twoPadlocksIntertwinedStarsDark: ImageVector? = null +private var _twoLocksIntertwinedStarsDark: ImageVector? = null @Preview @Composable private fun Preview() { - val imageVector = AppIllus.TwoPadlocksIntertwinedStarsDark + val imageVector = AppIllus.TwoLocksIntertwinedStarsDark Box { Image( imageVector = imageVector, diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsLight.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoLocksIntertwinedStarsLight.kt similarity index 73% rename from app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsLight.kt rename to app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoLocksIntertwinedStarsLight.kt index cc8897966..4d763fa4a 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoPadlocksIntertwinedStarsLight.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/TwoLocksIntertwinedStarsLight.kt @@ -1,3 +1,20 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package com.infomaniak.swisstransfer.ui.images.illus.onboarding import androidx.compose.foundation.Image @@ -20,20 +37,20 @@ import androidx.compose.ui.unit.dp import com.infomaniak.swisstransfer.ui.images.AppImages import com.infomaniak.swisstransfer.ui.images.AppImages.AppIllus -val AppIllus.TwoPadlocksIntertwinedStarsLight: ImageVector +val AppIllus.TwoLocksIntertwinedStarsLight: ImageVector get() { - if (_twoPadlocksIntertwinedStarsLight != null) { - return _twoPadlocksIntertwinedStarsLight!! + if (_twoLocksIntertwinedStarsLight != null) { + return _twoLocksIntertwinedStarsLight!! } - _twoPadlocksIntertwinedStarsLight = Builder( - name = "TwoPadlocksIntertwinedStarsLight", - defaultWidth = 240.0.dp, - defaultHeight = 192.0.dp, - viewportWidth = 240.0f, - viewportHeight = 192.0f + _twoLocksIntertwinedStarsLight = Builder( + name = "TwoLocksIntertwinedStarsLight", + defaultWidth = 375.0.dp, + defaultHeight = 258.0.dp, + viewportWidth = 375.0f, + viewportHeight = 258.0f ).apply { path( - fill = SolidColor(Color(0x00000000)), + fill = null, stroke = SolidColor(Color(0xFF3CB572)), strokeLineWidth = 9.78f, strokeLineCap = Butt, @@ -41,19 +58,17 @@ val AppIllus.TwoPadlocksIntertwinedStarsLight: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(124.45f, 89.52f) - lineTo(124.45f, 89.52f) - arcTo(27.3f, 27.3f, 56.26f, false, true, 116.99f, 127.39f) - lineTo(90.87f, 144.91f) - arcTo(27.3f, 27.3f, 56.26f, false, true, 53.0f, 137.45f) - lineTo(53.0f, 137.45f) - arcTo(27.3f, 27.3f, 56.26f, false, true, 60.46f, 99.58f) - lineTo(86.58f, 82.06f) - arcTo(27.3f, 27.3f, 56.26f, false, true, 124.45f, 89.52f) + moveTo(192.45f, 121.52f) + arcToRelative(27.3f, 27.3f, 56.26f, false, true, -7.46f, 37.87f) + lineToRelative(-26.12f, 17.52f) + arcToRelative(27.3f, 27.3f, 56.26f, false, true, -37.87f, -7.46f) + arcToRelative(27.3f, 27.3f, 56.26f, false, true, 7.46f, -37.87f) + lineToRelative(26.12f, -17.52f) + arcToRelative(27.3f, 27.3f, 56.26f, false, true, 37.87f, 7.46f) close() } path( - fill = SolidColor(Color(0x00000000)), + fill = null, stroke = SolidColor(Color(0xFF014958)), strokeLineWidth = 9.776f, strokeLineCap = Butt, @@ -61,27 +76,20 @@ val AppIllus.TwoPadlocksIntertwinedStarsLight: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(183.29f, 139.5f) - lineTo(183.29f, 139.5f) - arcTo(27.3f, 27.3f, 120.47f, false, true, 145.94f, 149.26f) - lineTo(118.8f, 133.36f) - arcTo(27.3f, 27.3f, 120.47f, false, true, 109.04f, 96.02f) - lineTo(109.04f, 96.02f) - arcTo(27.3f, 27.3f, 120.47f, false, true, 146.39f, 86.26f) - lineTo(173.53f, 102.15f) - arcTo(27.3f, 27.3f, 120.47f, false, true, 183.29f, 139.5f) + moveTo(251.29f, 171.5f) + arcToRelative(27.3f, 27.3f, 120.47f, false, true, -37.35f, 9.76f) + lineToRelative(-27.14f, -15.9f) + arcToRelative(27.3f, 27.3f, 120.47f, false, true, -9.76f, -37.35f) + arcToRelative(27.3f, 27.3f, 120.47f, false, true, 37.35f, -9.75f) + lineToRelative(27.14f, 15.89f) + arcToRelative(27.3f, 27.3f, 120.47f, false, true, 9.76f, 37.35f) close() } path( fill = SolidColor(Color(0xFF3CB572)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(117.85f, 121.01f) + moveTo(185.85f, 153.01f) lineToRelative(4.43f, 8.51f) lineToRelative(-16.53f, 11.3f) lineToRelative(-5.41f, -8.06f) @@ -96,13 +104,13 @@ val AppIllus.TwoPadlocksIntertwinedStarsLight: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(55.47f, 87.07f) + moveTo(123.47f, 119.07f) arcToRelative(7.65f, 7.65f, 0.0f, false, true, 10.61f, 2.09f) lineToRelative(36.56f, 54.5f) arcToRelative(7.65f, 7.65f, 0.0f, false, true, -2.09f, 10.61f) lineToRelative(-48.43f, 32.49f) arcToRelative(7.65f, 7.65f, 0.0f, false, true, -10.61f, -2.09f) - lineTo(4.95f, 130.17f) + lineToRelative(-36.56f, -54.5f) arcToRelative(7.65f, 7.65f, 0.0f, false, true, 2.09f, -10.61f) close() } @@ -115,7 +123,7 @@ val AppIllus.TwoPadlocksIntertwinedStarsLight: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(49.01f, 135.59f) + moveTo(117.01f, 167.59f) lineToRelative(0.01f, 0.3f) lineToRelative(-0.26f, 0.15f) lineToRelative(-5.6f, 3.23f) @@ -123,7 +131,8 @@ val AppIllus.TwoPadlocksIntertwinedStarsLight: ImageVector lineToRelative(5.6f, -3.23f) lineToRelative(0.26f, -0.15f) lineToRelative(0.25f, 0.16f) - arcToRelative(7.76f, 7.76f, 0.0f, true, false, 0.28f, -13.27f) + arcToRelative(7.76f, 7.76f, 0.0f, false, false, 10.89f, -10.43f) + arcToRelative(7.76f, 7.76f, 0.0f, false, false, -10.6f, -2.84f) lineToRelative(-0.25f, -0.43f) lineToRelative(0.25f, 0.43f) arcToRelative(7.76f, 7.76f, 0.0f, false, false, -3.88f, 7.05f) @@ -138,7 +147,7 @@ val AppIllus.TwoPadlocksIntertwinedStarsLight: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveTo(232.7f, 117.28f) + moveTo(300.7f, 149.28f) arcToRelative(7.65f, 7.65f, 0.0f, false, true, 2.77f, 10.45f) lineToRelative(-32.96f, 56.75f) arcToRelative(7.65f, 7.65f, 0.0f, false, true, -10.45f, 2.77f) @@ -157,7 +166,7 @@ val AppIllus.TwoPadlocksIntertwinedStarsLight: ImageVector strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(189.02f, 134.59f) + moveTo(257.02f, 166.59f) lineToRelative(-0.01f, 0.3f) lineToRelative(0.26f, 0.15f) lineToRelative(5.6f, 3.23f) @@ -174,15 +183,10 @@ val AppIllus.TwoPadlocksIntertwinedStarsLight: ImageVector } path( fill = SolidColor(Color(0xFF3CB572)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(109.05f, 14.08f) - lineToRelative(2.95f, -9.28f) + moveTo(177.05f, 46.08f) + lineTo(180.0f, 36.8f) lineToRelative(-4.76f, -1.51f) lineToRelative(-2.95f, 9.28f) lineToRelative(-7.75f, -6.15f) @@ -200,14 +204,9 @@ val AppIllus.TwoPadlocksIntertwinedStarsLight: ImageVector } path( fill = SolidColor(Color(0xFF014958)), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, pathFillType = NonZero ) { - moveToRelative(80.06f, 52.37f) + moveTo(148.06f, 84.37f) lineToRelative(1.02f, -3.23f) lineToRelative(-1.65f, -0.52f) lineToRelative(-1.03f, 3.23f) @@ -220,16 +219,16 @@ val AppIllus.TwoPadlocksIntertwinedStarsLight: ImageVector lineToRelative(1.14f, 3.38f) lineToRelative(1.55f, -0.55f) lineToRelative(-1.04f, -3.23f) - lineToRelative(3.46f, -0.09f) + lineToRelative(3.47f, -0.09f) lineToRelative(-0.14f, -1.72f) close() - moveTo(148.2f, 33.79f) + moveToRelative(68.14f, -18.58f) lineToRelative(1.53f, -4.82f) lineToRelative(-2.47f, -0.79f) lineToRelative(-1.53f, 4.82f) lineToRelative(-4.03f, -3.2f) lineToRelative(-1.53f, 2.01f) - lineToRelative(4.06f, 3.07f) + lineToRelative(4.06f, 3.08f) lineToRelative(-4.1f, 3.07f) lineToRelative(1.71f, 2.06f) lineToRelative(4.05f, -3.22f) @@ -241,15 +240,15 @@ val AppIllus.TwoPadlocksIntertwinedStarsLight: ImageVector close() } }.build() - return _twoPadlocksIntertwinedStarsLight!! + return _twoLocksIntertwinedStarsLight!! } -private var _twoPadlocksIntertwinedStarsLight: ImageVector? = null +private var _twoLocksIntertwinedStarsLight: ImageVector? = null @Preview @Composable private fun Preview() { - val imageVector = AppIllus.TwoPadlocksIntertwinedStarsLight + val imageVector = AppIllus.TwoLocksIntertwinedStarsLight Box { Image( imageVector = imageVector, diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt index 3e41d14b7..756ae4874 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -152,7 +152,7 @@ private enum class Page( ) { STORAGE( background = AppIllus.RadialGradientCornerTopRight, - illustration = AppIllus.StorageBoxPile, + illustration = AppIllus.StorageCardboardBoxPile, titleRes = R.string.onboardingStorageTitle, subtitleTemplateRes = R.string.onboardingStorageSubtitleTemplate, subtitleArgumentRes = R.string.onboardingStorageSubtitleArgument, @@ -168,7 +168,7 @@ private enum class Page( ), PASSWORD( background = AppIllus.RadialGradientCornerTopRight, - illustration = AppIllus.TwoPadlocksIntertwinedStars, + illustration = AppIllus.TwoLocksIntertwinedStars, titleRes = R.string.onboardingPasswordTitle, subtitleTemplateRes = R.string.onboardingPasswordSubtitleTemplate, subtitleArgumentRes = R.string.onboardingPasswordSubtitleArgument, From e7a153e8047d23b3296f1e503f23581cc0e75eba Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Mon, 9 Dec 2024 09:08:33 +0100 Subject: [PATCH 35/44] refactor: Start activity using an `also` --- .../java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt index cdae05874..814e5034d 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt @@ -55,7 +55,7 @@ class OnboardingActivity : ComponentActivity() { goToMainActivity = { scope.launch { accountUtils.login() - startActivity(Intent(this@OnboardingActivity, MainActivity::class.java)) + Intent(this@OnboardingActivity, MainActivity::class.java).also(::startActivity) finish() } } From ee16c1d19677e692a4c0c385b4775b2d856b4c30 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Mon, 9 Dec 2024 09:37:23 +0100 Subject: [PATCH 36/44] refactor: Clean illustration code --- .../RadialGradientCornerTopLeftLight.kt | 33 ++++++++--------- .../RadialGradientCornerTopRightDark.kt | 35 +++++++++---------- .../RadialGradientCornerTopRightLight.kt | 33 ++++++++--------- .../onboarding/StorageCardboardBoxPileDark.kt | 14 -------- 4 files changed, 46 insertions(+), 69 deletions(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftLight.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftLight.kt index 90d608612..796686f01 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftLight.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopLeftLight.kt @@ -31,7 +31,6 @@ import androidx.compose.ui.graphics.StrokeCap.Companion.Butt import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector.Builder -import androidx.compose.ui.graphics.vector.group import androidx.compose.ui.graphics.vector.path import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.tooling.preview.Preview @@ -50,23 +49,21 @@ val AppIllus.RadialGradientCornerTopLeftLight: ImageVector viewportWidth = 375.0f, viewportHeight = 832.0f ).apply { - group { - path( - fill = radialGradient( - 0.45f to Color(0xFFE3F6DC), 1.0f to Color(0x00E3F6DC), center = Offset(-7.08f, 2.41f), radius = 179.03f - ), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveTo(0.0f, 2.0f) - moveToRelative(-182.0f, 0.0f) - arcToRelative(182.0f, 182.0f, 0.0f, true, true, 364.0f, 0.0f) - arcToRelative(182.0f, 182.0f, 0.0f, true, true, -364.0f, 0.0f) - } + path( + fill = radialGradient( + 0.45f to Color(0xFFE3F6DC), 1.0f to Color(0x00E3F6DC), center = Offset(-7.08f, 2.41f), radius = 179.03f + ), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(0.0f, 2.0f) + moveToRelative(-182.0f, 0.0f) + arcToRelative(182.0f, 182.0f, 0.0f, true, true, 364.0f, 0.0f) + arcToRelative(182.0f, 182.0f, 0.0f, true, true, -364.0f, 0.0f) } }.build() return _radialGradientCornerTopLeftLight!! diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightDark.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightDark.kt index dc572e242..8180c0fb2 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightDark.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightDark.kt @@ -31,7 +31,6 @@ import androidx.compose.ui.graphics.StrokeCap.Companion.Butt import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector.Builder -import androidx.compose.ui.graphics.vector.group import androidx.compose.ui.graphics.vector.path import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.tooling.preview.Preview @@ -50,24 +49,22 @@ val AppIllus.RadialGradientCornerTopRightDark: ImageVector viewportWidth = 375.0f, viewportHeight = 832.0f ).apply { - group { - path( - fill = radialGradient( - 0.0f to Color(0xFF67DD95), 1.0f to Color(0x0067DD95), center = Offset(375.0f, -0.0f), radius = 234.0f - ), - stroke = null, - fillAlpha = 0.6f, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveTo(375.0f, 0.0f) - moveToRelative(-251.0f, 0.0f) - arcToRelative(251.0f, 251.0f, 0.0f, true, true, 502.0f, 0.0f) - arcToRelative(251.0f, 251.0f, 0.0f, true, true, -502.0f, 0.0f) - } + path( + fill = radialGradient( + 0.0f to Color(0xFF67DD95), 1.0f to Color(0x0067DD95), center = Offset(375.0f, -0.0f), radius = 234.0f + ), + stroke = null, + fillAlpha = 0.6f, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(375.0f, 0.0f) + moveToRelative(-251.0f, 0.0f) + arcToRelative(251.0f, 251.0f, 0.0f, true, true, 502.0f, 0.0f) + arcToRelative(251.0f, 251.0f, 0.0f, true, true, -502.0f, 0.0f) } }.build() return _radialGradientCornerTopRightDark!! diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightLight.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightLight.kt index 54612a64e..c025b4874 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightLight.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/RadialGradientCornerTopRightLight.kt @@ -31,7 +31,6 @@ import androidx.compose.ui.graphics.StrokeCap.Companion.Butt import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector.Builder -import androidx.compose.ui.graphics.vector.group import androidx.compose.ui.graphics.vector.path import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.tooling.preview.Preview @@ -50,23 +49,21 @@ val AppIllus.RadialGradientCornerTopRightLight: ImageVector viewportWidth = 375.0f, viewportHeight = 832.0f ).apply { - group { - path( - fill = radialGradient( - 0.45f to Color(0xFFE3F6DC), 1.0f to Color(0x00E3F6DC), center = Offset(363.92f, 2.41f), radius = 179.03f - ), - stroke = null, - strokeLineWidth = 0.0f, - strokeLineCap = Butt, - strokeLineJoin = Miter, - strokeLineMiter = 4.0f, - pathFillType = NonZero - ) { - moveTo(371.0f, 2.0f) - moveToRelative(-182.0f, 0.0f) - arcToRelative(182.0f, 182.0f, 0.0f, true, true, 364.0f, 0.0f) - arcToRelative(182.0f, 182.0f, 0.0f, true, true, -364.0f, 0.0f) - } + path( + fill = radialGradient( + 0.45f to Color(0xFFE3F6DC), 1.0f to Color(0x00E3F6DC), center = Offset(363.92f, 2.41f), radius = 179.03f + ), + stroke = null, + strokeLineWidth = 0.0f, + strokeLineCap = Butt, + strokeLineJoin = Miter, + strokeLineMiter = 4.0f, + pathFillType = NonZero + ) { + moveTo(371.0f, 2.0f) + moveToRelative(-182.0f, 0.0f) + arcToRelative(182.0f, 182.0f, 0.0f, true, true, 364.0f, 0.0f) + arcToRelative(182.0f, 182.0f, 0.0f, true, true, -364.0f, 0.0f) } }.build() return _radialGradientCornerTopRightLight!! diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageCardboardBoxPileDark.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageCardboardBoxPileDark.kt index d8560d129..20ecbf812 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageCardboardBoxPileDark.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/images/illus/onboarding/StorageCardboardBoxPileDark.kt @@ -51,20 +51,6 @@ val AppIllus.StorageCardboardBoxPileDark: ImageVector viewportWidth = 375.0f, viewportHeight = 258.0f ).apply { - group { - path( - fill = SolidColor(Color(0xFFA98116)), - pathFillType = EvenOdd - ) { - moveTo(140.98f, 94.2f) - curveToRelative(0.78f, 0.68f, 3.34f, 1.73f, 4.57f, 1.98f) - curveToRelative(-1.29f, -0.57f, -3.01f, -1.2f, -3.95f, -1.99f) - curveToRelative(-4.49f, -3.77f, -1.84f, -10.06f, 3.95f, -9.14f) - curveToRelative(1.06f, 0.17f, 2.86f, 1.02f, 4.31f, 1.73f) - curveToRelative(-0.97f, -0.69f, -3.81f, -2.05f, -4.84f, -2.28f) - curveToRelative(-4.83f, -1.08f, -9.7f, 4.74f, -4.04f, 9.69f) - } - } group { path( fill = SolidColor(Color(0xFFFFFFFF)), From d54063d29cb7bc05f3237e3b84555aa9dab646ce Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Mon, 9 Dec 2024 09:58:36 +0100 Subject: [PATCH 37/44] feat: Lock onboarding activity's rotation for small screens Copied the code from core --- .../java/com/infomaniak/core2/ScreenUtils.kt | 40 +++++++++++++++++++ .../swisstransfer/ui/OnboardingActivity.kt | 3 ++ 2 files changed, 43 insertions(+) create mode 100644 Core2/src/main/java/com/infomaniak/core2/ScreenUtils.kt diff --git a/Core2/src/main/java/com/infomaniak/core2/ScreenUtils.kt b/Core2/src/main/java/com/infomaniak/core2/ScreenUtils.kt new file mode 100644 index 000000000..d9518fae2 --- /dev/null +++ b/Core2/src/main/java/com/infomaniak/core2/ScreenUtils.kt @@ -0,0 +1,40 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.infomaniak.core2 + +import android.annotation.SuppressLint +import android.app.Activity +import android.content.pm.ActivityInfo +import android.content.res.Configuration +import kotlin.math.min + +private const val MIN_HEIGHT_FOR_LANDSCAPE = 4 + +@SuppressLint("SourceLockedOrientationActivity") +fun Activity.lockOrientationForSmallScreens() { + val (screenHeightInches, screenWidthInches) = with(resources.displayMetrics) { + (heightPixels / ydpi) to (widthPixels / xdpi) + } + + val aspectRatio = resources.configuration.screenLayout and Configuration.SCREENLAYOUT_LONG_MASK + val isLongScreen = aspectRatio == Configuration.SCREENLAYOUT_LONG_YES + + val isScreenTooSmall = isLongScreen && min(screenHeightInches, screenWidthInches) < MIN_HEIGHT_FOR_LANDSCAPE + + if (isScreenTooSmall) requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt index 814e5034d..4b6292e9f 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt @@ -27,6 +27,7 @@ import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.material3.Surface import androidx.compose.runtime.rememberCoroutineScope +import com.infomaniak.core2.lockOrientationForSmallScreens import com.infomaniak.swisstransfer.ui.screen.onboarding.OnboardingScreen import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme import com.infomaniak.swisstransfer.ui.utils.AccountUtils @@ -41,6 +42,8 @@ class OnboardingActivity : ComponentActivity() { lateinit var accountUtils: AccountUtils override fun onCreate(savedInstanceState: Bundle?) { + lockOrientationForSmallScreens() + super.onCreate(savedInstanceState) enableEdgeToEdge(navigationBarStyle = SystemBarStyle.auto(Color.TRANSPARENT, Color.TRANSPARENT)) From ce72d80ae8858f20c6ae3b554a8c8a92c2d256f5 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Mon, 9 Dec 2024 16:19:49 +0100 Subject: [PATCH 38/44] feat: Base the lock of the orientation on smalls screen on the compose boolean we already use --- Core2/compose/Core/build.gradle.kts | 47 +++++++++++++++++++ Core2/compose/Core/consumer-rules.pro | 0 Core2/compose/Core/proguard-rules.pro | 21 +++++++++ .../core2/compose/core/ScreenUtils.kt | 46 ++++++++++++++++++ app/build.gradle.kts | 1 + .../swisstransfer/ui/OnboardingActivity.kt | 9 ++-- settings.gradle.kts | 1 + 7 files changed, 122 insertions(+), 3 deletions(-) create mode 100644 Core2/compose/Core/build.gradle.kts create mode 100644 Core2/compose/Core/consumer-rules.pro create mode 100644 Core2/compose/Core/proguard-rules.pro create mode 100644 Core2/compose/Core/src/main/java/com/infomaniak/core2/compose/core/ScreenUtils.kt diff --git a/Core2/compose/Core/build.gradle.kts b/Core2/compose/Core/build.gradle.kts new file mode 100644 index 000000000..476e4e7e7 --- /dev/null +++ b/Core2/compose/Core/build.gradle.kts @@ -0,0 +1,47 @@ +plugins { + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.compose.compiler) +} + +val sharedCompileSdk: Int by rootProject.extra +val sharedMinSdk: Int by rootProject.extra +val sharedJavaVersion: JavaVersion by rootProject.extra + +android { + namespace = "com.infomaniak.core2.compose.core" + compileSdk = sharedCompileSdk + + defaultConfig { + minSdk = sharedMinSdk + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles("consumer-rules.pro") + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") + } + } + compileOptions { + sourceCompatibility = sharedJavaVersion + targetCompatibility = sharedJavaVersion + } + buildFeatures { + compose = true + } + composeOptions { + kotlinCompilerExtensionVersion = "1.5.14" + } + kotlinOptions { + jvmTarget = sharedJavaVersion.toString() + } +} + +dependencies { + implementation(platform(core2.compose.bom)) + implementation(core2.compose.runtime) + implementation(core2.compose.ui.tooling) +} diff --git a/Core2/compose/Core/consumer-rules.pro b/Core2/compose/Core/consumer-rules.pro new file mode 100644 index 000000000..e69de29bb diff --git a/Core2/compose/Core/proguard-rules.pro b/Core2/compose/Core/proguard-rules.pro new file mode 100644 index 000000000..481bb4348 --- /dev/null +++ b/Core2/compose/Core/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/Core2/compose/Core/src/main/java/com/infomaniak/core2/compose/core/ScreenUtils.kt b/Core2/compose/Core/src/main/java/com/infomaniak/core2/compose/core/ScreenUtils.kt new file mode 100644 index 000000000..7042599c8 --- /dev/null +++ b/Core2/compose/Core/src/main/java/com/infomaniak/core2/compose/core/ScreenUtils.kt @@ -0,0 +1,46 @@ +/* + * Infomaniak SwissTransfer - Android + * Copyright (C) 2024 Infomaniak Network SA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.infomaniak.core2.compose.core + +import android.annotation.SuppressLint +import android.app.Activity +import android.content.Context +import android.content.ContextWrapper +import android.content.pm.ActivityInfo +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.ui.platform.LocalContext + +@Composable +fun LockScreenOrientation(isLocked: Boolean) { + if (!isLocked) return + + val context = LocalContext.current + LaunchedEffect(Unit) { + val activity = context.findActivity() ?: return@LaunchedEffect + + @SuppressLint("SourceLockedOrientationActivity") + activity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT + } +} + +private fun Context.findActivity(): Activity? = when (this) { + is Activity -> this + is ContextWrapper -> baseContext.findActivity() + else -> null +} diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 537622206..767c063b9 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -88,6 +88,7 @@ dependencies { implementation(project(":Core2:Matomo")) implementation(project(":Core2:Network")) implementation(project(":Core2:Onboarding")) + implementation(project(":Core2:compose:Core")) implementation(project(":FileTypes")) implementation(kotlin("reflect")) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt index 4b6292e9f..b122d9201 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/OnboardingActivity.kt @@ -27,10 +27,13 @@ import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.material3.Surface import androidx.compose.runtime.rememberCoroutineScope -import com.infomaniak.core2.lockOrientationForSmallScreens +import androidx.compose.ui.platform.LocalContext +import com.infomaniak.core2.compose.core.LockScreenOrientation import com.infomaniak.swisstransfer.ui.screen.onboarding.OnboardingScreen +import com.infomaniak.swisstransfer.ui.theme.LocalWindowAdaptiveInfo import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme import com.infomaniak.swisstransfer.ui.utils.AccountUtils +import com.infomaniak.swisstransfer.ui.utils.isWindowSmall import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch import javax.inject.Inject @@ -42,8 +45,6 @@ class OnboardingActivity : ComponentActivity() { lateinit var accountUtils: AccountUtils override fun onCreate(savedInstanceState: Bundle?) { - lockOrientationForSmallScreens() - super.onCreate(savedInstanceState) enableEdgeToEdge(navigationBarStyle = SystemBarStyle.auto(Color.TRANSPARENT, Color.TRANSPARENT)) @@ -53,6 +54,8 @@ class OnboardingActivity : ComponentActivity() { val scope = rememberCoroutineScope() SwissTransferTheme { + LockScreenOrientation(isLocked = LocalWindowAdaptiveInfo.current.isWindowSmall()) + Surface { OnboardingScreen( goToMainActivity = { diff --git a/settings.gradle.kts b/settings.gradle.kts index 4f70b7865..afbc07e5e 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -34,4 +34,5 @@ include(":Core2:Sentry") include(":Core2:Matomo") include(":Core2:Network") include(":Core2:Onboarding") +include(":Core2:compose:Core") include(":FileTypes") From 1cc014f62a251713d461c818e95ad31c9b7cfa71 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Mon, 9 Dec 2024 16:19:55 +0100 Subject: [PATCH 39/44] style: Add missing comma --- .../ui/screen/newtransfer/upload/components/AdHeader.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/newtransfer/upload/components/AdHeader.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/newtransfer/upload/components/AdHeader.kt index 4d209ba71..63a0df74f 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/newtransfer/upload/components/AdHeader.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/newtransfer/upload/components/AdHeader.kt @@ -54,7 +54,7 @@ fun ColumnScope.AdHeader(adScreenType: UploadProgressAdType) { templateRes = R.string.uploadProgressTitleTemplate, argumentRes = R.string.uploadProgressTitleArgument, style = SwissTransferTheme.typography.bodyMedium, - isHighlighted = { isHighlighted } + isHighlighted = { isHighlighted }, ) Spacer(Modifier.height(Margin.Huge)) From f44f30c651c8b9d2c3f4f33cc676070820547240 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Mon, 9 Dec 2024 16:28:48 +0100 Subject: [PATCH 40/44] style: Order dependencies alphabetically --- Core2/gradle/core2.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core2/gradle/core2.versions.toml b/Core2/gradle/core2.versions.toml index 91053ecd5..f3ce715f9 100644 --- a/Core2/gradle/core2.versions.toml +++ b/Core2/gradle/core2.versions.toml @@ -6,11 +6,11 @@ sentry-android = "7.15.0" [libraries] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } +compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" } compose-foundation = { group = "androidx.compose.foundation", name = "foundation-android" } compose-material3 = { group = "androidx.compose.material3", name = "material3-android" } compose-runtime = { group = "androidx.compose.runtime", name = "runtime-android" } compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview-android" } -compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" } matomo = { module = "com.github.matomo-org:matomo-sdk-android", version.ref = "matomo" } sentry-android = { module = "io.sentry:sentry-android", version.ref = "sentry-android" } From 8cfd53ed20c92b1d95dabc977e5a5ee4dff70787 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Mon, 9 Dec 2024 16:33:01 +0100 Subject: [PATCH 41/44] style: Rename `startMainActivity` argument into `goToMainActivity` --- .../swisstransfer/ui/screen/onboarding/OnboardingScreen.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt index 756ae4874..b926cd102 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/onboarding/OnboardingScreen.kt @@ -79,7 +79,7 @@ fun OnboardingScreen(goToMainActivity: () -> Unit) { .padding(paddingValues) .consumeWindowInsets(paddingValues), isLastPage = { isLastPage }, - startMainActivity = goToMainActivity, + goToMainActivity = goToMainActivity, goToNextPage = { coroutineScope.launch { pagerState.animateScrollToPage(pagerState.currentPage + 1) } }, ) }, @@ -124,7 +124,7 @@ private fun TitleAndDescription(page: Page, isHighlighted: () -> Boolean) { private fun BottomContent( modifier: Modifier = Modifier, isLastPage: () -> Boolean, - startMainActivity: () -> Unit, + goToMainActivity: () -> Unit, goToNextPage: () -> Unit, ) { Box( @@ -135,7 +135,7 @@ private fun BottomContent( ) { AnimatedOnboardingButton( isExpanded = { isLastPage() }, - onClick = { if (isLastPage()) startMainActivity() else goToNextPage() }, + onClick = { if (isLastPage()) goToMainActivity() else goToNextPage() }, ) } } From 3aaf95e40481054b2370b518ff106c0da7fee78c Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Tue, 10 Dec 2024 13:32:26 +0100 Subject: [PATCH 42/44] refactor: Rename Core2's "compose" module into "Compose" --- Core2/{compose => Compose}/Core/build.gradle.kts | 0 Core2/{compose => Compose}/Core/consumer-rules.pro | 0 Core2/{compose => Compose}/Core/proguard-rules.pro | 0 .../main/java/com/infomaniak/core2/compose/core/ScreenUtils.kt | 0 app/build.gradle.kts | 2 +- settings.gradle.kts | 2 +- 6 files changed, 2 insertions(+), 2 deletions(-) rename Core2/{compose => Compose}/Core/build.gradle.kts (100%) rename Core2/{compose => Compose}/Core/consumer-rules.pro (100%) rename Core2/{compose => Compose}/Core/proguard-rules.pro (100%) rename Core2/{compose => Compose}/Core/src/main/java/com/infomaniak/core2/compose/core/ScreenUtils.kt (100%) diff --git a/Core2/compose/Core/build.gradle.kts b/Core2/Compose/Core/build.gradle.kts similarity index 100% rename from Core2/compose/Core/build.gradle.kts rename to Core2/Compose/Core/build.gradle.kts diff --git a/Core2/compose/Core/consumer-rules.pro b/Core2/Compose/Core/consumer-rules.pro similarity index 100% rename from Core2/compose/Core/consumer-rules.pro rename to Core2/Compose/Core/consumer-rules.pro diff --git a/Core2/compose/Core/proguard-rules.pro b/Core2/Compose/Core/proguard-rules.pro similarity index 100% rename from Core2/compose/Core/proguard-rules.pro rename to Core2/Compose/Core/proguard-rules.pro diff --git a/Core2/compose/Core/src/main/java/com/infomaniak/core2/compose/core/ScreenUtils.kt b/Core2/Compose/Core/src/main/java/com/infomaniak/core2/compose/core/ScreenUtils.kt similarity index 100% rename from Core2/compose/Core/src/main/java/com/infomaniak/core2/compose/core/ScreenUtils.kt rename to Core2/Compose/Core/src/main/java/com/infomaniak/core2/compose/core/ScreenUtils.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 767c063b9..6aeaef25a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -88,7 +88,7 @@ dependencies { implementation(project(":Core2:Matomo")) implementation(project(":Core2:Network")) implementation(project(":Core2:Onboarding")) - implementation(project(":Core2:compose:Core")) + implementation(project(":Core2:Compose:Core")) implementation(project(":FileTypes")) implementation(kotlin("reflect")) diff --git a/settings.gradle.kts b/settings.gradle.kts index afbc07e5e..8db1d9ae5 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -34,5 +34,5 @@ include(":Core2:Sentry") include(":Core2:Matomo") include(":Core2:Network") include(":Core2:Onboarding") -include(":Core2:compose:Core") +include(":Core2:Compose:Core") include(":FileTypes") From d0e77df7db9e7d821a8e78c795748958538c8d5b Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Wed, 11 Dec 2024 16:22:51 +0100 Subject: [PATCH 43/44] refactor: Remove unused ScreenUtils.kt in Core2 --- .../java/com/infomaniak/core2/ScreenUtils.kt | 40 ------------------- 1 file changed, 40 deletions(-) delete mode 100644 Core2/src/main/java/com/infomaniak/core2/ScreenUtils.kt diff --git a/Core2/src/main/java/com/infomaniak/core2/ScreenUtils.kt b/Core2/src/main/java/com/infomaniak/core2/ScreenUtils.kt deleted file mode 100644 index d9518fae2..000000000 --- a/Core2/src/main/java/com/infomaniak/core2/ScreenUtils.kt +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Infomaniak SwissTransfer - Android - * Copyright (C) 2024 Infomaniak Network SA - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.infomaniak.core2 - -import android.annotation.SuppressLint -import android.app.Activity -import android.content.pm.ActivityInfo -import android.content.res.Configuration -import kotlin.math.min - -private const val MIN_HEIGHT_FOR_LANDSCAPE = 4 - -@SuppressLint("SourceLockedOrientationActivity") -fun Activity.lockOrientationForSmallScreens() { - val (screenHeightInches, screenWidthInches) = with(resources.displayMetrics) { - (heightPixels / ydpi) to (widthPixels / xdpi) - } - - val aspectRatio = resources.configuration.screenLayout and Configuration.SCREENLAYOUT_LONG_MASK - val isLongScreen = aspectRatio == Configuration.SCREENLAYOUT_LONG_YES - - val isScreenTooSmall = isLongScreen && min(screenHeightInches, screenWidthInches) < MIN_HEIGHT_FOR_LANDSCAPE - - if (isScreenTooSmall) requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT -} From 0f1520c7985d0649a392a020116d0185ad970528 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Fri, 13 Dec 2024 12:34:41 +0100 Subject: [PATCH 44/44] refactor: Add tailrec annotation to the recursive findActivity method --- .../main/java/com/infomaniak/core2/compose/core/ScreenUtils.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core2/Compose/Core/src/main/java/com/infomaniak/core2/compose/core/ScreenUtils.kt b/Core2/Compose/Core/src/main/java/com/infomaniak/core2/compose/core/ScreenUtils.kt index 7042599c8..92e5209c5 100644 --- a/Core2/Compose/Core/src/main/java/com/infomaniak/core2/compose/core/ScreenUtils.kt +++ b/Core2/Compose/Core/src/main/java/com/infomaniak/core2/compose/core/ScreenUtils.kt @@ -39,7 +39,7 @@ fun LockScreenOrientation(isLocked: Boolean) { } } -private fun Context.findActivity(): Activity? = when (this) { +private tailrec fun Context.findActivity(): Activity? = when (this) { is Activity -> this is ContextWrapper -> baseContext.findActivity() else -> null