From 4af1adfae7eac286dd5a564a232484ce3e1117b1 Mon Sep 17 00:00:00 2001 From: Vincent TE Date: Wed, 21 Aug 2024 16:30:17 +0200 Subject: [PATCH 1/6] Add url in strings and handle external action --- .../ui/screen/main/settings/SettingsScreen.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsScreen.kt index 0e7ff529c..4c55c8365 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsScreen.kt @@ -18,6 +18,12 @@ package com.infomaniak.swisstransfer.ui.screen.main.settings +import android.content.ActivityNotFoundException +import android.content.Context +import android.content.Intent +import android.net.Uri +import android.os.Build +import android.provider.Settings import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize @@ -65,6 +71,9 @@ import com.infomaniak.swisstransfer.ui.utils.PreviewTablet fun SettingsScreenWrapper( windowAdaptiveInfo: WindowAdaptiveInfo = currentWindowAdaptiveInfo(), ) { + val context = LocalContext.current + val aboutURL = stringResource(R.string.urlAbout) + val userReportURL = stringResource(R.string.urlUserReportAndroid) TwoPaneScaffold( windowAdaptiveInfo, listPane = { ListPane(this) }, From 7b3fa8072d59cab111e7df89b801131196ba780e Mon Sep 17 00:00:00 2001 From: Vincent TE Date: Thu, 22 Aug 2024 08:27:34 +0200 Subject: [PATCH 2/6] Add email language settings UI --- .../ui/icons/illu/EnglishFlag.kt | 196 ++++++++++++++++++ .../swisstransfer/ui/icons/illu/FrenchFlag.kt | 104 ++++++++++ .../swisstransfer/ui/icons/illu/GermanFlag.kt | 86 ++++++++ .../ui/icons/illu/ItalianFlag.kt | 88 ++++++++ 4 files changed, 474 insertions(+) create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/EnglishFlag.kt create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/FrenchFlag.kt create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/GermanFlag.kt create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/ItalianFlag.kt diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/EnglishFlag.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/EnglishFlag.kt new file mode 100644 index 000000000..fb935b1d0 --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/EnglishFlag.kt @@ -0,0 +1,196 @@ +package com.infomaniak.swisstransfer.ui.icons.illu + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.padding +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.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.infomaniak.swisstransfer.ui.icons.AppIcons + +val AppIcons.EnglishFlag: ImageVector + get() { + if (_englishFlag != null) { + return _englishFlag!! + } + _englishFlag = Builder( + name = "EnglishFlag", + defaultWidth = 24.0.dp, + defaultHeight = 24.0.dp, + viewportWidth = 24.0f, + viewportHeight = 24.0f + ).apply { + group { + path( + fill = SolidColor(Color(0xFF0B5394)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(1.333f, 3.0f) + horizontalLineToRelative(21.334f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 24.0f, 4.333f) + verticalLineToRelative(15.334f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 22.667f, 21.0f) + horizontalLineTo(1.333f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 0.0f, 19.667f) + verticalLineTo(4.333f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 1.333f, 3.0f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(12.0f, 11.667f) + lineTo(24.0f, 3.0f) + verticalLineToRelative(3.333f) + lineToRelative(-6.667f, 4.0f) + close() + } + path( + fill = SolidColor(Color(0xFFD0142C)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(14.667f, 10.334f) + lineTo(24.0f, 3.667f) + verticalLineTo(5.0f) + lineToRelative(-8.0f, 5.334f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(12.0f, 13.667f) + lineTo(0.0f, 22.334f) + verticalLineToRelative(-3.333f) + lineToRelative(6.667f, -4.0f) + close() + } + path( + fill = SolidColor(Color(0xFFD0142C)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(9.333f, 15.0f) + lineTo(0.0f, 21.667f) + verticalLineToRelative(-1.333f) + lineTo(8.0f, 15.0f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(12.0f, 11.667f) + lineTo(0.0f, 3.0f) + verticalLineToRelative(3.333f) + lineToRelative(6.667f, 4.0f) + close() + } + path( + fill = SolidColor(Color(0xFFD0142C)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(9.333f, 10.334f) + lineTo(0.0f, 3.667f) + verticalLineTo(5.0f) + lineToRelative(8.0f, 5.334f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(12.0f, 13.667f) + lineToRelative(12.0f, 8.667f) + verticalLineToRelative(-3.333f) + lineToRelative(-6.667f, -4.0f) + close() + } + path( + fill = SolidColor(Color(0xFFD0142C)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(14.667f, 15.0f) + lineTo(24.0f, 21.667f) + verticalLineToRelative(-1.333f) + lineTo(16.0f, 15.0f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(0.0f, 15.0f) + verticalLineTo(9.667f) + horizontalLineToRelative(24.0f) + verticalLineTo(15.0f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(9.333f, 3.0f) + horizontalLineToRelative(5.333f) + verticalLineToRelative(18.667f) + horizontalLineTo(9.333f) + close() + } + path( + fill = SolidColor(Color(0xFFD0142C)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(10.667f, 3.0f) + horizontalLineToRelative(2.667f) + verticalLineToRelative(18.667f) + horizontalLineToRelative(-2.667f) + close() + } + path( + fill = SolidColor(Color(0xFFD0142C)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(0.0f, 13.667f) + verticalLineTo(11.0f) + horizontalLineToRelative(24.0f) + verticalLineToRelative(2.667f) + close() + } + } + } + .build() + return _englishFlag!! + } + +private var _englishFlag: ImageVector? = null + +@Preview +@Composable +private fun Preview() { + Box(modifier = Modifier.padding(12.dp)) { + Image(imageVector = AppIcons.EnglishFlag, contentDescription = "") + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/FrenchFlag.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/FrenchFlag.kt new file mode 100644 index 000000000..860625789 --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/FrenchFlag.kt @@ -0,0 +1,104 @@ +package com.infomaniak.swisstransfer.ui.icons.illu + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.padding +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.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.infomaniak.swisstransfer.ui.icons.AppIcons + +val AppIcons.FrenchFlag: ImageVector + get() { + if (_frenchFlag != null) { + return _frenchFlag!! + } + _frenchFlag = Builder( + name = "FrenchFlag", + defaultWidth = 24.0.dp, + defaultHeight = 24.0.dp, + viewportWidth = 24.0f, + viewportHeight = 24.0f + ).apply { + group { + path( + fill = SolidColor(Color(0xFF0B5394)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(1.333f, 3.0f) + horizontalLineToRelative(21.334f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 24.0f, 4.333f) + verticalLineToRelative(15.334f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 22.667f, 21.0f) + horizontalLineTo(1.333f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 0.0f, 19.667f) + verticalLineTo(4.333f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 1.333f, 3.0f) + close() + } + path( + fill = SolidColor(Color(0xFFE70E0E)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(1.333f, 3.0f) + horizontalLineToRelative(21.334f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 24.0f, 4.333f) + verticalLineToRelative(16.001f) + arcToRelative(1.333f, 1.333f, 0.0f, false, true, -1.333f, 1.333f) + horizontalLineTo(1.333f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 0.0f, 20.334f) + verticalLineTo(4.333f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 1.333f, 3.0f) + close() + } + path( + fill = SolidColor(Color(0xFF0B5394)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(0.0f, 4.333f) + curveTo(0.0f, 3.597f, 0.597f, 3.0f, 1.333f, 3.0f) + horizontalLineTo(8.0f) + verticalLineToRelative(18.667f) + horizontalLineTo(1.333f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 0.0f, 20.333f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(8.0f, 3.0f) + horizontalLineToRelative(8.0f) + verticalLineToRelative(18.667f) + horizontalLineTo(8.0f) + close() + } + } + } + .build() + return _frenchFlag!! + } + +private var _frenchFlag: ImageVector? = null + +@Preview +@Composable +private fun Preview() { + Box(modifier = Modifier.padding(12.dp)) { + Image(imageVector = AppIcons.FrenchFlag, contentDescription = "") + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/GermanFlag.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/GermanFlag.kt new file mode 100644 index 000000000..90ca661a8 --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/GermanFlag.kt @@ -0,0 +1,86 @@ +package com.infomaniak.swisstransfer.ui.icons.illu + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.padding +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.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.infomaniak.swisstransfer.ui.icons.AppIcons + +val AppIcons.GermanFlag: ImageVector + get() { + if (_germanFlag != null) { + return _germanFlag!! + } + _germanFlag = Builder( + name = "GermanFlag", + defaultWidth = 24.0.dp, + defaultHeight = 24.0.dp, + viewportWidth = 24.0f, + viewportHeight = 24.0f + ).apply { + group { + path( + fill = SolidColor(Color(0xFFE70E0E)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(1.333f, 3.0f) + horizontalLineToRelative(21.334f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 24.0f, 4.333f) + verticalLineToRelative(15.334f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 22.667f, 21.0f) + horizontalLineTo(1.333f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 0.0f, 19.667f) + verticalLineTo(4.333f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 1.333f, 3.0f) + close() + } + path( + fill = SolidColor(Color(0xFF000000)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(0.0f, 3.0f) + horizontalLineToRelative(24.0f) + verticalLineToRelative(6.0f) + horizontalLineTo(0.0f) + close() + } + path( + fill = SolidColor(Color(0xFFFDDA25)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(0.0f, 15.667f) + horizontalLineToRelative(24.0f) + verticalLineToRelative(6.0f) + horizontalLineTo(0.0f) + close() + } + } + } + .build() + return _germanFlag!! + } + +private var _germanFlag: ImageVector? = null + +@Preview +@Composable +private fun Preview() { + Box(modifier = Modifier.padding(12.dp)) { + Image(imageVector = AppIcons.GermanFlag, contentDescription = "") + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/ItalianFlag.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/ItalianFlag.kt new file mode 100644 index 000000000..37dca29be --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/ItalianFlag.kt @@ -0,0 +1,88 @@ +package com.infomaniak.swisstransfer.ui.icons.illu + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.padding +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.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.infomaniak.swisstransfer.ui.icons.AppIcons + +val AppIcons.ItalianFlag: ImageVector + get() { + if (_italianFlag != null) { + return _italianFlag!! + } + _italianFlag = Builder( + name = "ItalianFlag", + defaultWidth = 24.0.dp, + defaultHeight = 24.0.dp, + viewportWidth = 24.0f, + viewportHeight = 24.0f + ).apply { + group { + path( + fill = SolidColor(Color(0xFFE70E0E)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(1.333f, 3.0f) + horizontalLineToRelative(21.334f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 24.0f, 4.333f) + verticalLineToRelative(15.334f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 22.667f, 21.0f) + horizontalLineTo(1.333f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 0.0f, 19.667f) + verticalLineTo(4.333f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 1.333f, 3.0f) + close() + } + path( + fill = SolidColor(Color(0xFF128D4E)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(0.0f, 4.333f) + curveTo(0.0f, 3.597f, 0.597f, 3.0f, 1.333f, 3.0f) + horizontalLineTo(8.0f) + verticalLineToRelative(18.667f) + horizontalLineTo(1.333f) + arcTo(1.333f, 1.333f, 0.0f, false, true, 0.0f, 20.333f) + close() + } + path( + fill = SolidColor(Color(0xFFFFFFFF)), stroke = null, strokeLineWidth = + 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = + 4.0f, pathFillType = NonZero + ) { + moveTo(8.0f, 3.0f) + horizontalLineToRelative(8.0f) + verticalLineToRelative(18.667f) + horizontalLineTo(8.0f) + close() + } + } + } + .build() + return _italianFlag!! + } + +private var _italianFlag: ImageVector? = null + +@Preview +@Composable +private fun Preview() { + Box(modifier = Modifier.padding(12.dp)) { + Image(imageVector = AppIcons.ItalianFlag, contentDescription = "") + } +} From 8a7546d7f25475e9227a7f190c02e8c4e969e1ac Mon Sep 17 00:00:00 2001 From: Vincent TE Date: Thu, 22 Aug 2024 09:20:18 +0200 Subject: [PATCH 3/6] Add Downloads limit settings UI --- .../settings/SettingsDownloadsLimitScreen.kt | 68 +++++++++++++++++++ .../ui/screen/main/settings/SettingsScreen.kt | 2 +- app/src/main/res/values-de/strings.xml | 3 +- 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 | 2 +- app/src/main/res/values/strings.xml | 1 + 7 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsDownloadsLimitScreen.kt diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsDownloadsLimitScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsDownloadsLimitScreen.kt new file mode 100644 index 000000000..a6ae36a71 --- /dev/null +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsDownloadsLimitScreen.kt @@ -0,0 +1,68 @@ +/* + * 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.main.settings + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Surface +import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector +import com.infomaniak.swisstransfer.R +import com.infomaniak.swisstransfer.ui.screen.main.settings.components.SettingOption +import com.infomaniak.swisstransfer.ui.screen.main.settings.components.SettingTitle +import com.infomaniak.swisstransfer.ui.screen.main.settings.components.SingleSelectOptions +import com.infomaniak.swisstransfer.ui.theme.SwissTransferTheme +import com.infomaniak.swisstransfer.ui.utils.PreviewMobile +import com.infomaniak.swisstransfer.ui.utils.PreviewTablet + +@Composable +fun SettingsDownloadsLimitScreen() { + Column(modifier = Modifier.verticalScroll(rememberScrollState())) { + SettingTitle(titleRes = R.string.settingsDownloadsLimitTitle) + + val (selectedItem, setSelectedItem) = rememberSaveable { mutableIntStateOf(0) } // TODO: Use DataStore or Realm + SingleSelectOptions(DownloadsLimit.entries, { selectedItem }, setSelectedItem) + } +} + +enum class DownloadsLimit( + override val title: @Composable () -> String, + override val imageVector: ImageVector? = null, + override val imageVectorResId: Int? = null, +) : SettingOption { + TWOHUNDREDFIFTY({ "250" }), + ONEHUNDRED({ "100" }), + TWENTY({ "20" }), + ONE({ "1" }), +} + +@PreviewMobile +@PreviewTablet +@Composable +private fun SettingsThemeScreenPreview() { + SwissTransferTheme { + Surface { + SettingsDownloadsLimitScreen() + } + } +} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsScreen.kt index 4c55c8365..4e0c6a2a9 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsScreen.kt @@ -116,7 +116,7 @@ private fun DetailPane(navigator: ThreePaneScaffoldNavigator SettingsThemeScreen() VALIDITY_PERIOD -> SettingsValidityPeriodScreen() - DOWNLOAD_LIMIT -> Unit + DOWNLOAD_LIMIT -> SettingsDownloadsLimitScreen() EMAIL_LANGUAGE -> SettingsEmailLanguageScreen() NOTIFICATIONS, DISCOVER_INFOMANIAK, diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 643f11f3a..ff6069a35 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -29,8 +29,7 @@ Über Standardeinstellungen General - Wähle Sie eine Präferenz - Entdecken Sie Infomaniak + Lege ein Standardlimit für deine Uploads fest Legt eine Standardsprache für Ihre Weiterleitungen per E-Mail fest Englisch Deutsch diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 312c740ce..3c7c34ea6 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -29,6 +29,7 @@ Quiénes somos Ajustes por defecto General + Establece un límite de descarga por defecto para tus transferencias Establecer un idioma por defecto para las transferencias de correo electrónico Inglés Francés diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index b03708575..c20c48103 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -29,6 +29,7 @@ A propos Paramètres par défaut Général + Défini une limite de téléchargements par défaut pour tes transferts Défini une langue par défaut pour vos transferts par e-mail Anglais Francais diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 5c0093fa6..466f953be 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -29,7 +29,7 @@ Chi siamo Impostazioni predefinite Generale - Selezionare una preferenza + Impostare un limite di download predefinito per i trasferimenti Impostare una lingua predefinita per i trasferimenti di e-mail Inglese Francese diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7cca02079..22c3568b9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -32,6 +32,7 @@ About Default settings Général + Set a default download limit for your transfers Set a default language for your email transfers English French From 73b030b9ee23a35297f737ffb4c9f3b34e7689ff Mon Sep 17 00:00:00 2001 From: Vincent TE Date: Thu, 22 Aug 2024 09:49:04 +0200 Subject: [PATCH 4/6] Update strings --- app/src/main/res/values-de/strings.xml | 2 ++ app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-it/strings.xml | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index ff6069a35..b79c81d16 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -36,6 +36,8 @@ Deutsch Italienisch Spanisch + Wählt eine Präferenz aus + Entdecke Infomaniak Limit für Downloads Sprache der E-Mail Gib deine Meinung ab diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index c20c48103..9b9d53003 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -37,7 +37,7 @@ Italien Espagnol Sélectionne une préférence - Découvrir Infomaniak + Découvre Infomaniak Limite de téléchargements Langue de l’e-mail Donne ton avis diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 466f953be..200214e7d 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -36,6 +36,7 @@ Tedesco Italiano Spagnolo + Seleziona una preferenza Scoprire Infomaniak Limite di download Lingua della posta elettronica From 5aa537cade049a52a65f5aa4b3c30142bebbe91e Mon Sep 17 00:00:00 2001 From: Vincent TE Date: Tue, 27 Aug 2024 12:57:43 +0200 Subject: [PATCH 5/6] Fix import --- .../ui/screen/main/settings/SettingsScreen.kt | 9 --------- 1 file changed, 9 deletions(-) diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsScreen.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsScreen.kt index 4e0c6a2a9..d2ac70cd7 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsScreen.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/settings/SettingsScreen.kt @@ -18,12 +18,6 @@ package com.infomaniak.swisstransfer.ui.screen.main.settings -import android.content.ActivityNotFoundException -import android.content.Context -import android.content.Intent -import android.net.Uri -import android.os.Build -import android.provider.Settings import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize @@ -71,9 +65,6 @@ import com.infomaniak.swisstransfer.ui.utils.PreviewTablet fun SettingsScreenWrapper( windowAdaptiveInfo: WindowAdaptiveInfo = currentWindowAdaptiveInfo(), ) { - val context = LocalContext.current - val aboutURL = stringResource(R.string.urlAbout) - val userReportURL = stringResource(R.string.urlUserReportAndroid) TwoPaneScaffold( windowAdaptiveInfo, listPane = { ListPane(this) }, From 8230f8f161b9c3ec271b62a7533676c3326baac3 Mon Sep 17 00:00:00 2001 From: Vincent TE Date: Tue, 27 Aug 2024 13:01:04 +0200 Subject: [PATCH 6/6] Remove unused flags --- .../ui/icons/illu/EnglishFlag.kt | 196 ------------------ .../swisstransfer/ui/icons/illu/FrenchFlag.kt | 104 ---------- .../swisstransfer/ui/icons/illu/GermanFlag.kt | 86 -------- .../ui/icons/illu/ItalianFlag.kt | 88 -------- 4 files changed, 474 deletions(-) delete mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/EnglishFlag.kt delete mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/FrenchFlag.kt delete mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/GermanFlag.kt delete mode 100644 app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/ItalianFlag.kt diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/EnglishFlag.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/EnglishFlag.kt deleted file mode 100644 index fb935b1d0..000000000 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/EnglishFlag.kt +++ /dev/null @@ -1,196 +0,0 @@ -package com.infomaniak.swisstransfer.ui.icons.illu - -import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.padding -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.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import com.infomaniak.swisstransfer.ui.icons.AppIcons - -val AppIcons.EnglishFlag: ImageVector - get() { - if (_englishFlag != null) { - return _englishFlag!! - } - _englishFlag = Builder( - name = "EnglishFlag", - defaultWidth = 24.0.dp, - defaultHeight = 24.0.dp, - viewportWidth = 24.0f, - viewportHeight = 24.0f - ).apply { - group { - path( - fill = SolidColor(Color(0xFF0B5394)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(1.333f, 3.0f) - horizontalLineToRelative(21.334f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 24.0f, 4.333f) - verticalLineToRelative(15.334f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 22.667f, 21.0f) - horizontalLineTo(1.333f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 0.0f, 19.667f) - verticalLineTo(4.333f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 1.333f, 3.0f) - close() - } - path( - fill = SolidColor(Color(0xFFFFFFFF)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(12.0f, 11.667f) - lineTo(24.0f, 3.0f) - verticalLineToRelative(3.333f) - lineToRelative(-6.667f, 4.0f) - close() - } - path( - fill = SolidColor(Color(0xFFD0142C)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(14.667f, 10.334f) - lineTo(24.0f, 3.667f) - verticalLineTo(5.0f) - lineToRelative(-8.0f, 5.334f) - close() - } - path( - fill = SolidColor(Color(0xFFFFFFFF)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(12.0f, 13.667f) - lineTo(0.0f, 22.334f) - verticalLineToRelative(-3.333f) - lineToRelative(6.667f, -4.0f) - close() - } - path( - fill = SolidColor(Color(0xFFD0142C)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(9.333f, 15.0f) - lineTo(0.0f, 21.667f) - verticalLineToRelative(-1.333f) - lineTo(8.0f, 15.0f) - close() - } - path( - fill = SolidColor(Color(0xFFFFFFFF)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(12.0f, 11.667f) - lineTo(0.0f, 3.0f) - verticalLineToRelative(3.333f) - lineToRelative(6.667f, 4.0f) - close() - } - path( - fill = SolidColor(Color(0xFFD0142C)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(9.333f, 10.334f) - lineTo(0.0f, 3.667f) - verticalLineTo(5.0f) - lineToRelative(8.0f, 5.334f) - close() - } - path( - fill = SolidColor(Color(0xFFFFFFFF)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(12.0f, 13.667f) - lineToRelative(12.0f, 8.667f) - verticalLineToRelative(-3.333f) - lineToRelative(-6.667f, -4.0f) - close() - } - path( - fill = SolidColor(Color(0xFFD0142C)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(14.667f, 15.0f) - lineTo(24.0f, 21.667f) - verticalLineToRelative(-1.333f) - lineTo(16.0f, 15.0f) - close() - } - path( - fill = SolidColor(Color(0xFFFFFFFF)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(0.0f, 15.0f) - verticalLineTo(9.667f) - horizontalLineToRelative(24.0f) - verticalLineTo(15.0f) - close() - } - path( - fill = SolidColor(Color(0xFFFFFFFF)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(9.333f, 3.0f) - horizontalLineToRelative(5.333f) - verticalLineToRelative(18.667f) - horizontalLineTo(9.333f) - close() - } - path( - fill = SolidColor(Color(0xFFD0142C)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(10.667f, 3.0f) - horizontalLineToRelative(2.667f) - verticalLineToRelative(18.667f) - horizontalLineToRelative(-2.667f) - close() - } - path( - fill = SolidColor(Color(0xFFD0142C)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(0.0f, 13.667f) - verticalLineTo(11.0f) - horizontalLineToRelative(24.0f) - verticalLineToRelative(2.667f) - close() - } - } - } - .build() - return _englishFlag!! - } - -private var _englishFlag: ImageVector? = null - -@Preview -@Composable -private fun Preview() { - Box(modifier = Modifier.padding(12.dp)) { - Image(imageVector = AppIcons.EnglishFlag, contentDescription = "") - } -} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/FrenchFlag.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/FrenchFlag.kt deleted file mode 100644 index 860625789..000000000 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/FrenchFlag.kt +++ /dev/null @@ -1,104 +0,0 @@ -package com.infomaniak.swisstransfer.ui.icons.illu - -import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.padding -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.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import com.infomaniak.swisstransfer.ui.icons.AppIcons - -val AppIcons.FrenchFlag: ImageVector - get() { - if (_frenchFlag != null) { - return _frenchFlag!! - } - _frenchFlag = Builder( - name = "FrenchFlag", - defaultWidth = 24.0.dp, - defaultHeight = 24.0.dp, - viewportWidth = 24.0f, - viewportHeight = 24.0f - ).apply { - group { - path( - fill = SolidColor(Color(0xFF0B5394)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(1.333f, 3.0f) - horizontalLineToRelative(21.334f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 24.0f, 4.333f) - verticalLineToRelative(15.334f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 22.667f, 21.0f) - horizontalLineTo(1.333f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 0.0f, 19.667f) - verticalLineTo(4.333f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 1.333f, 3.0f) - close() - } - path( - fill = SolidColor(Color(0xFFE70E0E)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(1.333f, 3.0f) - horizontalLineToRelative(21.334f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 24.0f, 4.333f) - verticalLineToRelative(16.001f) - arcToRelative(1.333f, 1.333f, 0.0f, false, true, -1.333f, 1.333f) - horizontalLineTo(1.333f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 0.0f, 20.334f) - verticalLineTo(4.333f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 1.333f, 3.0f) - close() - } - path( - fill = SolidColor(Color(0xFF0B5394)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(0.0f, 4.333f) - curveTo(0.0f, 3.597f, 0.597f, 3.0f, 1.333f, 3.0f) - horizontalLineTo(8.0f) - verticalLineToRelative(18.667f) - horizontalLineTo(1.333f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 0.0f, 20.333f) - close() - } - path( - fill = SolidColor(Color(0xFFFFFFFF)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(8.0f, 3.0f) - horizontalLineToRelative(8.0f) - verticalLineToRelative(18.667f) - horizontalLineTo(8.0f) - close() - } - } - } - .build() - return _frenchFlag!! - } - -private var _frenchFlag: ImageVector? = null - -@Preview -@Composable -private fun Preview() { - Box(modifier = Modifier.padding(12.dp)) { - Image(imageVector = AppIcons.FrenchFlag, contentDescription = "") - } -} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/GermanFlag.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/GermanFlag.kt deleted file mode 100644 index 90ca661a8..000000000 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/GermanFlag.kt +++ /dev/null @@ -1,86 +0,0 @@ -package com.infomaniak.swisstransfer.ui.icons.illu - -import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.padding -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.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import com.infomaniak.swisstransfer.ui.icons.AppIcons - -val AppIcons.GermanFlag: ImageVector - get() { - if (_germanFlag != null) { - return _germanFlag!! - } - _germanFlag = Builder( - name = "GermanFlag", - defaultWidth = 24.0.dp, - defaultHeight = 24.0.dp, - viewportWidth = 24.0f, - viewportHeight = 24.0f - ).apply { - group { - path( - fill = SolidColor(Color(0xFFE70E0E)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(1.333f, 3.0f) - horizontalLineToRelative(21.334f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 24.0f, 4.333f) - verticalLineToRelative(15.334f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 22.667f, 21.0f) - horizontalLineTo(1.333f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 0.0f, 19.667f) - verticalLineTo(4.333f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 1.333f, 3.0f) - close() - } - path( - fill = SolidColor(Color(0xFF000000)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(0.0f, 3.0f) - horizontalLineToRelative(24.0f) - verticalLineToRelative(6.0f) - horizontalLineTo(0.0f) - close() - } - path( - fill = SolidColor(Color(0xFFFDDA25)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(0.0f, 15.667f) - horizontalLineToRelative(24.0f) - verticalLineToRelative(6.0f) - horizontalLineTo(0.0f) - close() - } - } - } - .build() - return _germanFlag!! - } - -private var _germanFlag: ImageVector? = null - -@Preview -@Composable -private fun Preview() { - Box(modifier = Modifier.padding(12.dp)) { - Image(imageVector = AppIcons.GermanFlag, contentDescription = "") - } -} diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/ItalianFlag.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/ItalianFlag.kt deleted file mode 100644 index 37dca29be..000000000 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/icons/illu/ItalianFlag.kt +++ /dev/null @@ -1,88 +0,0 @@ -package com.infomaniak.swisstransfer.ui.icons.illu - -import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.padding -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.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import com.infomaniak.swisstransfer.ui.icons.AppIcons - -val AppIcons.ItalianFlag: ImageVector - get() { - if (_italianFlag != null) { - return _italianFlag!! - } - _italianFlag = Builder( - name = "ItalianFlag", - defaultWidth = 24.0.dp, - defaultHeight = 24.0.dp, - viewportWidth = 24.0f, - viewportHeight = 24.0f - ).apply { - group { - path( - fill = SolidColor(Color(0xFFE70E0E)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(1.333f, 3.0f) - horizontalLineToRelative(21.334f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 24.0f, 4.333f) - verticalLineToRelative(15.334f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 22.667f, 21.0f) - horizontalLineTo(1.333f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 0.0f, 19.667f) - verticalLineTo(4.333f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 1.333f, 3.0f) - close() - } - path( - fill = SolidColor(Color(0xFF128D4E)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(0.0f, 4.333f) - curveTo(0.0f, 3.597f, 0.597f, 3.0f, 1.333f, 3.0f) - horizontalLineTo(8.0f) - verticalLineToRelative(18.667f) - horizontalLineTo(1.333f) - arcTo(1.333f, 1.333f, 0.0f, false, true, 0.0f, 20.333f) - close() - } - path( - fill = SolidColor(Color(0xFFFFFFFF)), stroke = null, strokeLineWidth = - 0.0f, strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = - 4.0f, pathFillType = NonZero - ) { - moveTo(8.0f, 3.0f) - horizontalLineToRelative(8.0f) - verticalLineToRelative(18.667f) - horizontalLineTo(8.0f) - close() - } - } - } - .build() - return _italianFlag!! - } - -private var _italianFlag: ImageVector? = null - -@Preview -@Composable -private fun Preview() { - Box(modifier = Modifier.padding(12.dp)) { - Image(imageVector = AppIcons.ItalianFlag, contentDescription = "") - } -}