Skip to content

Commit

Permalink
Merge pull request #37 from Infomaniak/settings-limit-downloads
Browse files Browse the repository at this point in the history
Add Downloads limit settings UI
  • Loading branch information
sirambd authored Aug 27, 2024
2 parents a3ad8b8 + 8230f8f commit 64aacf3
Show file tree
Hide file tree
Showing 7 changed files with 78 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -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 <http://www.gnu.org/licenses/>.
*/

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()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ private fun DetailPane(navigator: ThreePaneScaffoldNavigator<SettingsOptionScree
when (destination) {
THEME -> SettingsThemeScreen()
VALIDITY_PERIOD -> SettingsValidityPeriodScreen()
DOWNLOAD_LIMIT -> Unit
DOWNLOAD_LIMIT -> SettingsDownloadsLimitScreen()
EMAIL_LANGUAGE -> SettingsEmailLanguageScreen()
NOTIFICATIONS,
DISCOVER_INFOMANIAK,
Expand Down
5 changes: 3 additions & 2 deletions app/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,15 @@
<string name="settingsCategoryAbout">Über</string>
<string name="settingsCategoryDefaultSettings">Standardeinstellungen</string>
<string name="settingsCategoryGeneral">General</string>
<string name="settingsNotificationsTitle">Wähle Sie eine Präferenz</string>
<string name="settingsOptionDiscoverInfomaniak">Entdecken Sie Infomaniak</string>
<string name="settingsDownloadsLimitTitle">Lege ein Standardlimit für deine Uploads fest</string>
<string name="settingsEmailLanguageTitle">Legt eine Standardsprache für Ihre Weiterleitungen per E-Mail fest</string>
<string name="settingsEmailLanguageValueEnglish">Englisch</string>
<string name="settingsEmailLanguageValueFrench">Deutsch</string>
<string name="settingsEmailLanguageValueGerman">Deutsch</string>
<string name="settingsEmailLanguageValueItalian">Italienisch</string>
<string name="settingsEmailLanguageValueSpanish">Spanisch</string>
<string name="settingsNotificationsTitle">Wählt eine Präferenz aus</string>
<string name="settingsOptionDiscoverInfomaniak">Entdecke Infomaniak</string>
<string name="settingsOptionDownloadLimit">Limit für Downloads</string>
<string name="settingsOptionEmailLanguage">Sprache der E-Mail</string>
<string name="settingsOptionGiveFeedback">Gib deine Meinung ab</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-es/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
<string name="settingsCategoryAbout">Quiénes somos</string>
<string name="settingsCategoryDefaultSettings">Ajustes por defecto</string>
<string name="settingsCategoryGeneral">General</string>
<string name="settingsDownloadsLimitTitle">Establece un límite de descarga por defecto para tus transferencias</string>
<string name="settingsEmailLanguageTitle">Establecer un idioma por defecto para las transferencias de correo electrónico</string>
<string name="settingsEmailLanguageValueEnglish">Inglés</string>
<string name="settingsEmailLanguageValueFrench">Francés</string>
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,15 @@
<string name="settingsCategoryAbout">A propos</string>
<string name="settingsCategoryDefaultSettings">Paramètres par défaut</string>
<string name="settingsCategoryGeneral">Général</string>
<string name="settingsDownloadsLimitTitle">Défini une limite de téléchargements par défaut pour tes transferts</string>
<string name="settingsEmailLanguageTitle">Défini une langue par défaut pour vos transferts par e-mail</string>
<string name="settingsEmailLanguageValueEnglish">Anglais</string>
<string name="settingsEmailLanguageValueFrench">Francais</string>
<string name="settingsEmailLanguageValueGerman">Allemand</string>
<string name="settingsEmailLanguageValueItalian">Italien</string>
<string name="settingsEmailLanguageValueSpanish">Espagnol</string>
<string name="settingsNotificationsTitle">Sélectionne une préférence</string>
<string name="settingsOptionDiscoverInfomaniak">Découvrir Infomaniak</string>
<string name="settingsOptionDiscoverInfomaniak">Découvre Infomaniak</string>
<string name="settingsOptionDownloadLimit">Limite de téléchargements</string>
<string name="settingsOptionEmailLanguage">Langue de l’e-mail</string>
<string name="settingsOptionGiveFeedback">Donne ton avis</string>
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/res/values-it/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,14 @@
<string name="settingsCategoryAbout">Chi siamo</string>
<string name="settingsCategoryDefaultSettings">Impostazioni predefinite</string>
<string name="settingsCategoryGeneral">Generale</string>
<string name="settingsNotificationsTitle">Selezionare una preferenza</string>
<string name="settingsDownloadsLimitTitle">Impostare un limite di download predefinito per i trasferimenti</string>
<string name="settingsEmailLanguageTitle">Impostare una lingua predefinita per i trasferimenti di e-mail</string>
<string name="settingsEmailLanguageValueEnglish">Inglese</string>
<string name="settingsEmailLanguageValueFrench">Francese</string>
<string name="settingsEmailLanguageValueGerman">Tedesco</string>
<string name="settingsEmailLanguageValueItalian">Italiano</string>
<string name="settingsEmailLanguageValueSpanish">Spagnolo</string>
<string name="settingsNotificationsTitle">Seleziona una preferenza</string>
<string name="settingsOptionDiscoverInfomaniak">Scoprire Infomaniak</string>
<string name="settingsOptionDownloadLimit">Limite di download</string>
<string name="settingsOptionEmailLanguage">Lingua della posta elettronica</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
<string name="settingsCategoryAbout">About</string>
<string name="settingsCategoryDefaultSettings">Default settings</string>
<string name="settingsCategoryGeneral">Général</string>
<string name="settingsDownloadsLimitTitle">Set a default download limit for your transfers</string>
<string name="settingsEmailLanguageTitle">Set a default language for your email transfers</string>
<string name="settingsEmailLanguageValueEnglish">English</string>
<string name="settingsEmailLanguageValueFrench">French</string>
Expand Down

0 comments on commit 64aacf3

Please sign in to comment.