From a7389ebda6041ddf330f309eba5402232091fccc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolf-Martell=20Montw=C3=A9?= Date: Mon, 16 Sep 2024 17:38:38 +0200 Subject: [PATCH 1/3] Add custom FolderManaged icon and remaining material icons for the settings view --- .../compose/designsystem/atom/icon/Icons.kt | 17 ++- .../atom/icon/outlined/FolderManaged.kt | 134 ++++++++++++++++++ 2 files changed, 150 insertions(+), 1 deletion(-) create mode 100644 core/ui/compose/designsystem/src/main/kotlin/app/k9mail/core/ui/compose/designsystem/atom/icon/outlined/FolderManaged.kt diff --git a/core/ui/compose/designsystem/src/main/kotlin/app/k9mail/core/ui/compose/designsystem/atom/icon/Icons.kt b/core/ui/compose/designsystem/src/main/kotlin/app/k9mail/core/ui/compose/designsystem/atom/icon/Icons.kt index d4d712d954..592c561be6 100644 --- a/core/ui/compose/designsystem/src/main/kotlin/app/k9mail/core/ui/compose/designsystem/atom/icon/Icons.kt +++ b/core/ui/compose/designsystem/src/main/kotlin/app/k9mail/core/ui/compose/designsystem/atom/icon/Icons.kt @@ -10,6 +10,8 @@ import androidx.compose.material.icons.filled.VisibilityOff import androidx.compose.material.icons.outlined.AccountCircle import androidx.compose.material.icons.outlined.Archive import androidx.compose.material.icons.outlined.Check +import androidx.compose.material.icons.outlined.ChevronLeft +import androidx.compose.material.icons.outlined.ChevronRight import androidx.compose.material.icons.outlined.Delete import androidx.compose.material.icons.outlined.Drafts import androidx.compose.material.icons.outlined.ErrorOutline @@ -21,10 +23,11 @@ import androidx.compose.material.icons.outlined.Info import androidx.compose.material.icons.outlined.Menu import androidx.compose.material.icons.outlined.Report import androidx.compose.material.icons.outlined.Security -import androidx.compose.material.icons.outlined.Send +import androidx.compose.material.icons.outlined.Settings import androidx.compose.material.icons.outlined.Visibility import androidx.compose.ui.graphics.vector.ImageVector import app.k9mail.core.ui.compose.designsystem.atom.icon.filled.Dot +import app.k9mail.core.ui.compose.designsystem.atom.icon.outlined.FolderManaged import androidx.compose.material.icons.Icons as MaterialIcons // We're using getters so not all icons are loaded into memory as soon as one of the nested objects is accessed. @@ -56,6 +59,12 @@ object Icons { val Check: ImageVector get() = MaterialIcons.Outlined.Check + val ChevronLeft: ImageVector + get() = MaterialIcons.Outlined.ChevronLeft + + val ChevronRight: ImageVector + get() = MaterialIcons.Outlined.ChevronRight + val Delete: ImageVector get() = MaterialIcons.Outlined.Delete @@ -80,6 +89,9 @@ object Icons { val Info: ImageVector get() = MaterialIcons.Outlined.Info + val FolderManaged: ImageVector + get() = MaterialIcons.Outlined.FolderManaged + val Menu: ImageVector get() = MaterialIcons.Outlined.Menu @@ -92,6 +104,9 @@ object Icons { val Send: ImageVector get() = MaterialIcons.AutoMirrored.Outlined.Send + val Settings: ImageVector + get() = MaterialIcons.Outlined.Settings + val Report: ImageVector get() = MaterialIcons.Outlined.Report diff --git a/core/ui/compose/designsystem/src/main/kotlin/app/k9mail/core/ui/compose/designsystem/atom/icon/outlined/FolderManaged.kt b/core/ui/compose/designsystem/src/main/kotlin/app/k9mail/core/ui/compose/designsystem/atom/icon/outlined/FolderManaged.kt new file mode 100644 index 0000000000..ce930e7a44 --- /dev/null +++ b/core/ui/compose/designsystem/src/main/kotlin/app/k9mail/core/ui/compose/designsystem/atom/icon/outlined/FolderManaged.kt @@ -0,0 +1,134 @@ +package app.k9mail.core.ui.compose.designsystem.atom.icon.outlined + +import androidx.compose.material.icons.Icons +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap +import androidx.compose.ui.graphics.StrokeJoin +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +@Suppress("MagicNumber") +val Icons.Outlined.FolderManaged: ImageVector + get() { + if (instance != null) { + return instance!! + } + instance = ImageVector.Builder( + name = "Outlined.FolderManaged", + defaultWidth = 24.dp, + defaultHeight = 24.dp, + viewportWidth = 960f, + viewportHeight = 960f, + ).apply { + path( + fill = SolidColor(Color.Black), + fillAlpha = 1.0f, + stroke = null, + strokeAlpha = 1.0f, + strokeLineWidth = 1.0f, + strokeLineCap = StrokeCap.Butt, + strokeLineJoin = StrokeJoin.Miter, + strokeLineMiter = 1.0f, + pathFillType = PathFillType.NonZero, + ) { + moveTo(680f, 880f) + lineTo(668f, 820f) + quadTo(656f, 815f, 645.5f, 809.5f) + quadTo(635f, 804f, 624f, 796f) + lineTo(566f, 814f) + lineTo(526f, 746f) + lineTo(572f, 706f) + quadTo(570f, 694f, 570f, 680f) + quadTo(570f, 666f, 572f, 654f) + lineTo(526f, 614f) + lineTo(566f, 546f) + lineTo(624f, 564f) + quadTo(635f, 556f, 645.5f, 550.5f) + quadTo(656f, 545f, 668f, 540f) + lineTo(680f, 480f) + lineTo(760f, 480f) + lineTo(772f, 540f) + quadTo(784f, 545f, 794.5f, 550.5f) + quadTo(805f, 556f, 816f, 564f) + lineTo(874f, 546f) + lineTo(914f, 614f) + lineTo(868f, 654f) + quadTo(870f, 666f, 870f, 680f) + quadTo(870f, 694f, 868f, 706f) + lineTo(914f, 746f) + lineTo(874f, 814f) + lineTo(816f, 796f) + quadTo(805f, 804f, 794.5f, 809.5f) + quadTo(784f, 815f, 772f, 820f) + lineTo(760f, 880f) + lineTo(680f, 880f) + close() + moveTo(720f, 760f) + quadTo(753f, 760f, 776.5f, 736.5f) + quadTo(800f, 713f, 800f, 680f) + quadTo(800f, 647f, 776.5f, 623.5f) + quadTo(753f, 600f, 720f, 600f) + quadTo(687f, 600f, 663.5f, 623.5f) + quadTo(640f, 647f, 640f, 680f) + quadTo(640f, 713f, 663.5f, 736.5f) + quadTo(687f, 760f, 720f, 760f) + close() + moveTo(160f, 720f) + lineTo(160f, 720f) + quadTo(160f, 720f, 160f, 720f) + quadTo(160f, 720f, 160f, 720f) + lineTo(160f, 240f) + quadTo(160f, 240f, 160f, 240f) + quadTo(160f, 240f, 160f, 240f) + lineTo(160f, 240f) + lineTo(160f, 320f) + lineTo(160f, 320f) + quadTo(160f, 320f, 160f, 320f) + quadTo(160f, 320f, 160f, 320f) + lineTo(160f, 412f) + quadTo(160f, 406f, 160f, 403f) + quadTo(160f, 400f, 160f, 400f) + quadTo(160f, 400f, 160f, 482.5f) + quadTo(160f, 565f, 160f, 679f) + quadTo(160f, 690f, 160f, 699.5f) + quadTo(160f, 709f, 160f, 720f) + close() + moveTo(160f, 800f) + quadTo(127f, 800f, 103.5f, 776.5f) + quadTo(80f, 753f, 80f, 720f) + lineTo(80f, 240f) + quadTo(80f, 207f, 103.5f, 183.5f) + quadTo(127f, 160f, 160f, 160f) + lineTo(400f, 160f) + lineTo(480f, 240f) + lineTo(800f, 240f) + quadTo(833f, 240f, 856.5f, 263.5f) + quadTo(880f, 287f, 880f, 320f) + lineTo(880f, 451f) + quadTo(862f, 438f, 842f, 428.5f) + quadTo(822f, 419f, 800f, 412f) + lineTo(800f, 320f) + quadTo(800f, 320f, 800f, 320f) + quadTo(800f, 320f, 800f, 320f) + lineTo(447f, 320f) + lineTo(367f, 240f) + lineTo(160f, 240f) + quadTo(160f, 240f, 160f, 240f) + quadTo(160f, 240f, 160f, 240f) + lineTo(160f, 720f) + quadTo(160f, 720f, 160f, 720f) + quadTo(160f, 720f, 160f, 720f) + lineTo(443f, 720f) + quadTo(446f, 741f, 452.5f, 761f) + quadTo(459f, 781f, 468f, 800f) + lineTo(160f, 800f) + close() + } + }.build() + return instance!! + } + +private var instance: ImageVector? = null From 2a6193721e9f296df6551792a42615c3fb5edc82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolf-Martell=20Montw=C3=A9?= Date: Mon, 16 Sep 2024 17:40:34 +0200 Subject: [PATCH 2/3] Add SettingList and SettingListItem --- .../ui/setting/SettingListItemPreview.kt | 18 ++++++++ .../drawer/ui/setting/SettingListPreview.kt | 29 ++++++++++++ .../feature/navigation/drawer/FolderDrawer.kt | 4 ++ .../feature/navigation/drawer/LegacyDrawer.kt | 4 +- .../navigation/drawer/ui/DrawerContent.kt | 19 ++++---- .../navigation/drawer/ui/DrawerContract.kt | 6 +++ .../navigation/drawer/ui/DrawerView.kt | 4 ++ .../navigation/drawer/ui/DrawerViewModel.kt | 4 ++ .../drawer/ui/account/AccountView.kt | 6 +-- .../navigation/drawer/ui/folder/FolderList.kt | 7 ++- .../drawer/ui/folder/FolderListItem.kt | 4 +- .../drawer/ui/setting/SettingList.kt | 44 +++++++++++++++++++ .../drawer/ui/setting/SettingListItem.kt | 27 ++++++++++++ .../drawer/src/main/res/values/strings.xml | 2 + .../drawer/domain/usecase/SyncMailTest.kt | 17 +++++++ .../navigation/drawer/ui/DrawerStateTest.kt | 1 + .../navigation/drawer/ui/DrawerViewKtTest.kt | 32 ++++++++++++++ .../drawer/ui/DrawerViewModelTest.kt | 41 +++++++++++++++++ .../java/com/fsck/k9/activity/MessageList.kt | 4 +- 19 files changed, 255 insertions(+), 18 deletions(-) create mode 100644 feature/navigation/drawer/src/debug/kotlin/app/k9mail/feature/navigation/drawer/ui/setting/SettingListItemPreview.kt create mode 100644 feature/navigation/drawer/src/debug/kotlin/app/k9mail/feature/navigation/drawer/ui/setting/SettingListPreview.kt create mode 100644 feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/setting/SettingList.kt create mode 100644 feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/setting/SettingListItem.kt diff --git a/feature/navigation/drawer/src/debug/kotlin/app/k9mail/feature/navigation/drawer/ui/setting/SettingListItemPreview.kt b/feature/navigation/drawer/src/debug/kotlin/app/k9mail/feature/navigation/drawer/ui/setting/SettingListItemPreview.kt new file mode 100644 index 0000000000..0ea943319f --- /dev/null +++ b/feature/navigation/drawer/src/debug/kotlin/app/k9mail/feature/navigation/drawer/ui/setting/SettingListItemPreview.kt @@ -0,0 +1,18 @@ +package app.k9mail.feature.navigation.drawer.ui.setting + +import androidx.compose.runtime.Composable +import androidx.compose.ui.tooling.preview.Preview +import app.k9mail.core.ui.compose.designsystem.PreviewWithThemes +import app.k9mail.core.ui.compose.designsystem.atom.icon.Icons + +@Composable +@Preview(showBackground = true) +fun SettingListItemPreview() { + PreviewWithThemes { + SettingListItem( + label = "Settings", + onClick = {}, + imageVector = Icons.Outlined.Settings, + ) + } +} diff --git a/feature/navigation/drawer/src/debug/kotlin/app/k9mail/feature/navigation/drawer/ui/setting/SettingListPreview.kt b/feature/navigation/drawer/src/debug/kotlin/app/k9mail/feature/navigation/drawer/ui/setting/SettingListPreview.kt new file mode 100644 index 0000000000..34a2659c59 --- /dev/null +++ b/feature/navigation/drawer/src/debug/kotlin/app/k9mail/feature/navigation/drawer/ui/setting/SettingListPreview.kt @@ -0,0 +1,29 @@ +package app.k9mail.feature.navigation.drawer.ui.setting + +import androidx.compose.runtime.Composable +import androidx.compose.ui.tooling.preview.Preview +import app.k9mail.core.ui.compose.designsystem.PreviewWithTheme + +@Composable +@Preview(showBackground = true) +fun SettingListPreview() { + PreviewWithTheme { + SettingList( + onAccountSelectorClick = {}, + onManageFoldersClick = {}, + showAccountSelector = false, + ) + } +} + +@Composable +@Preview(showBackground = true) +fun SettingListShowAccountSelectorPreview() { + PreviewWithTheme { + SettingList( + onAccountSelectorClick = {}, + onManageFoldersClick = {}, + showAccountSelector = true, + ) + } +} diff --git a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/FolderDrawer.kt b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/FolderDrawer.kt index d7aac983e6..abde0ffd0d 100644 --- a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/FolderDrawer.kt +++ b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/FolderDrawer.kt @@ -17,6 +17,8 @@ class FolderDrawer( override val parent: AppCompatActivity, private val openAccount: (account: Account) -> Unit, private val openFolder: (folderId: Long) -> Unit, + private val openManageFolders: () -> Unit, + private val openSettings: () -> Unit, createDrawerListener: () -> DrawerLayout.DrawerListener, ) : NavigationDrawer, KoinComponent { @@ -38,6 +40,8 @@ class FolderDrawer( DrawerView( openAccount = openAccount, openFolder = openFolder, + openManageFolders = openManageFolders, + openSettings = openSettings, closeDrawer = { close() }, ) } diff --git a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/LegacyDrawer.kt b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/LegacyDrawer.kt index e49678dc76..bf82131689 100644 --- a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/LegacyDrawer.kt +++ b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/LegacyDrawer.kt @@ -66,7 +66,7 @@ private const val EN_SPACE = "\u2000" @Suppress("MagicNumber", "TooManyFunctions", "LongParameterList") class LegacyDrawer( override val parent: AppCompatActivity, - private val openFolders: () -> Unit, + private val openManageFolders: () -> Unit, private val openUnifiedInbox: () -> Unit, private val openFolder: (folderId: Long) -> Unit, private val openAccount: (account: Account) -> Boolean, @@ -352,7 +352,7 @@ class LegacyDrawer( private fun handleItemClickListener(drawerItem: IDrawerItem<*>) { when (drawerItem.identifier) { DRAWER_ID_PREFERENCES -> openSettings() - DRAWER_ID_FOLDERS -> openFolders() + DRAWER_ID_FOLDERS -> openManageFolders() DRAWER_ID_UNIFIED_INBOX -> openUnifiedInbox() else -> { val folder = drawerItem.tag as Folder diff --git a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerContent.kt b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerContent.kt index 44f46c729c..5fc026ecc7 100644 --- a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerContent.kt +++ b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerContent.kt @@ -1,19 +1,17 @@ package app.k9mail.feature.navigation.drawer.ui -import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag import app.k9mail.core.ui.compose.designsystem.atom.DividerHorizontal import app.k9mail.core.ui.compose.designsystem.atom.Surface -import app.k9mail.core.ui.compose.theme2.MainTheme import app.k9mail.feature.navigation.drawer.ui.DrawerContract.Event import app.k9mail.feature.navigation.drawer.ui.DrawerContract.State import app.k9mail.feature.navigation.drawer.ui.account.AccountView import app.k9mail.feature.navigation.drawer.ui.folder.FolderList +import app.k9mail.feature.navigation.drawer.ui.setting.SettingList @Composable fun DrawerContent( @@ -28,11 +26,7 @@ fun DrawerContent( ) { Column( modifier = Modifier - .fillMaxSize() - .padding( - vertical = MainTheme.spacings.oneHalf, - ), - verticalArrangement = Arrangement.spacedBy(MainTheme.spacings.default), + .fillMaxSize(), ) { state.selectedAccount?.let { AccountView( @@ -51,7 +45,16 @@ fun DrawerContent( onEvent(Event.OnFolderClick(folder)) }, showStarredCount = state.config.showStarredCount, + modifier = Modifier.weight(1f), ) + Column { + DividerHorizontal() + SettingList( + onAccountSelectorClick = { onEvent(Event.OnAccountSelectorClick) }, + onManageFoldersClick = { onEvent(Event.OnManageFoldersClick) }, + showAccountSelector = state.showAccountSelector, + ) + } } } } diff --git a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerContract.kt b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerContract.kt index f7fd2c8bd6..2ed1086827 100644 --- a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerContract.kt +++ b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerContract.kt @@ -23,6 +23,7 @@ interface DrawerContract { val selectedAccount: DisplayAccount? = null, val folders: ImmutableList = persistentListOf(), val selectedFolder: DisplayAccountFolder? = null, + val showAccountSelector: Boolean = false, val isLoading: Boolean = false, ) @@ -30,12 +31,17 @@ interface DrawerContract { data class OnAccountClick(val account: DisplayAccount) : Event data class OnAccountViewClick(val account: DisplayAccount) : Event data class OnFolderClick(val folder: DisplayAccountFolder) : Event + data object OnAccountSelectorClick : Event + data object OnManageFoldersClick : Event + data object OnSettingsClick : Event data object OnRefresh : Event } sealed interface Effect { data class OpenAccount(val account: Account) : Effect data class OpenFolder(val folderId: Long) : Effect + data object OpenManageFolders : Effect + data object OpenSettings : Effect data object CloseDrawer : Effect } } diff --git a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerView.kt b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerView.kt index 3d86bdc93e..9865a500cd 100644 --- a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerView.kt +++ b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerView.kt @@ -13,6 +13,8 @@ import org.koin.androidx.compose.koinViewModel fun DrawerView( openAccount: (account: Account) -> Unit, openFolder: (folderId: Long) -> Unit, + openManageFolders: () -> Unit, + openSettings: () -> Unit, closeDrawer: () -> Unit, viewModel: ViewModel = koinViewModel(), ) { @@ -20,6 +22,8 @@ fun DrawerView( when (effect) { is Effect.OpenAccount -> openAccount(effect.account) is Effect.OpenFolder -> openFolder(effect.folderId) + is Effect.OpenManageFolders -> openManageFolders() + is Effect.OpenSettings -> openSettings() Effect.CloseDrawer -> closeDrawer() } } diff --git a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerViewModel.kt b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerViewModel.kt index abc9ff3f67..413223c490 100644 --- a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerViewModel.kt +++ b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerViewModel.kt @@ -101,6 +101,10 @@ class DrawerViewModel( state.value.accounts.nextOrFirst(event.account)!!, ) } + + Event.OnAccountSelectorClick -> updateState { it.copy(showAccountSelector = it.showAccountSelector.not()) } + Event.OnManageFoldersClick -> emitEffect(Effect.OpenManageFolders) + Event.OnSettingsClick -> emitEffect(Effect.OpenSettings) } } diff --git a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/account/AccountView.kt b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/account/AccountView.kt index 4cdbeda911..bd99a2718c 100644 --- a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/account/AccountView.kt +++ b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/account/AccountView.kt @@ -30,10 +30,10 @@ fun AccountView( .height(intrinsicSize = IntrinsicSize.Max) .clickable(onClick = onClick) .padding( - top = MainTheme.spacings.default, + top = MainTheme.spacings.double, start = MainTheme.spacings.double, end = MainTheme.spacings.triple, - bottom = MainTheme.spacings.oneHalf, + bottom = MainTheme.spacings.double, ), verticalAlignment = Alignment.CenterVertically, ) { @@ -42,7 +42,7 @@ fun AccountView( modifier = Modifier .fillMaxHeight() .padding( - end = MainTheme.spacings.default, + end = MainTheme.spacings.oneHalf, ), ) Column( diff --git a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/folder/FolderList.kt b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/folder/FolderList.kt index 7e26419f7b..332d03a361 100644 --- a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/folder/FolderList.kt +++ b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/folder/FolderList.kt @@ -1,10 +1,12 @@ package app.k9mail.feature.navigation.drawer.ui.folder -import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import app.k9mail.core.ui.compose.theme2.MainTheme import app.k9mail.feature.navigation.drawer.domain.entity.DisplayAccountFolder import kotlinx.collections.immutable.ImmutableList @@ -18,7 +20,8 @@ fun FolderList( ) { LazyColumn( modifier = modifier - .fillMaxSize(), + .fillMaxWidth(), + contentPadding = PaddingValues(vertical = MainTheme.spacings.default), ) { items(folders) { folder -> FolderListItem( diff --git a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/folder/FolderListItem.kt b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/folder/FolderListItem.kt index 7090599fa6..978db3ba5d 100644 --- a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/folder/FolderListItem.kt +++ b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/folder/FolderListItem.kt @@ -13,15 +13,15 @@ import app.k9mail.feature.navigation.drawer.domain.entity.DisplayAccountFolder fun FolderListItem( displayFolder: DisplayAccountFolder, selected: Boolean, - showStarredCount: Boolean, onClick: (DisplayAccountFolder) -> Unit, + showStarredCount: Boolean, modifier: Modifier = Modifier, ) { NavigationDrawerItem( label = displayFolder.folder.name, selected = selected, - modifier = modifier, onClick = { onClick(displayFolder) }, + modifier = modifier, icon = { Icon( imageVector = mapFolderIcon(displayFolder.folder.type), diff --git a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/setting/SettingList.kt b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/setting/SettingList.kt new file mode 100644 index 0000000000..5abc55a177 --- /dev/null +++ b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/setting/SettingList.kt @@ -0,0 +1,44 @@ +package app.k9mail.feature.navigation.drawer.ui.setting + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import app.k9mail.core.ui.compose.designsystem.atom.icon.Icons +import app.k9mail.core.ui.compose.theme2.MainTheme +import app.k9mail.feature.navigation.drawer.R + +@Composable +fun SettingList( + onAccountSelectorClick: () -> Unit, + onManageFoldersClick: () -> Unit, + showAccountSelector: Boolean, + modifier: Modifier = Modifier, +) { + Column( + modifier = modifier + .padding(vertical = MainTheme.spacings.default) + .fillMaxWidth(), + ) { + SettingListItem( + label = stringResource(R.string.navigation_drawer_action_manage_folders), + onClick = onManageFoldersClick, + imageVector = Icons.Outlined.FolderManaged, + ) + SettingListItem( + label = if (showAccountSelector) { + stringResource(R.string.navigation_drawer_action_hide_accounts) + } else { + stringResource(R.string.navigation_drawer_action_show_accounts) + }, + onClick = onAccountSelectorClick, + imageVector = if (showAccountSelector) { + Icons.Outlined.ChevronLeft + } else { + Icons.Outlined.ChevronRight + }, + ) + } +} diff --git a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/setting/SettingListItem.kt b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/setting/SettingListItem.kt new file mode 100644 index 0000000000..293587b01f --- /dev/null +++ b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/setting/SettingListItem.kt @@ -0,0 +1,27 @@ +package app.k9mail.feature.navigation.drawer.ui.setting + +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector +import app.k9mail.core.ui.compose.designsystem.atom.icon.Icon +import app.k9mail.core.ui.compose.designsystem.organism.drawer.NavigationDrawerItem + +@Composable +fun SettingListItem( + label: String, + onClick: () -> Unit, + imageVector: ImageVector, + modifier: Modifier = Modifier, +) { + NavigationDrawerItem( + label = label, + onClick = onClick, + modifier = modifier, + selected = false, + icon = { + Icon( + imageVector = imageVector, + ) + }, + ) +} diff --git a/feature/navigation/drawer/src/main/res/values/strings.xml b/feature/navigation/drawer/src/main/res/values/strings.xml index 05163e5640..c5ac4f07a0 100644 --- a/feature/navigation/drawer/src/main/res/values/strings.xml +++ b/feature/navigation/drawer/src/main/res/values/strings.xml @@ -2,6 +2,8 @@ Settings Manage folders + Show accounts + Hide accounts Unified Inbox 99+ 1k+ diff --git a/feature/navigation/drawer/src/test/kotlin/app/k9mail/feature/navigation/drawer/domain/usecase/SyncMailTest.kt b/feature/navigation/drawer/src/test/kotlin/app/k9mail/feature/navigation/drawer/domain/usecase/SyncMailTest.kt index 66295504ed..71acfcdbe4 100644 --- a/feature/navigation/drawer/src/test/kotlin/app/k9mail/feature/navigation/drawer/domain/usecase/SyncMailTest.kt +++ b/feature/navigation/drawer/src/test/kotlin/app/k9mail/feature/navigation/drawer/domain/usecase/SyncMailTest.kt @@ -1,5 +1,6 @@ package app.k9mail.feature.navigation.drawer.domain.usecase +import app.k9mail.feature.navigation.drawer.ui.FakeData import app.k9mail.legacy.account.Account import app.k9mail.legacy.message.controller.MessagingControllerMailChecker import app.k9mail.legacy.message.controller.MessagingListener @@ -27,6 +28,22 @@ class SyncMailTest { assertThat(result.isSuccess).isEqualTo(true) } + @Test + fun `should sync mail with account`() = runTest { + val listenerExecutor: (MessagingListener?) -> Unit = { listener -> + listener?.checkMailFinished(null, null) + } + val testSubject = SyncMail( + messagingController = FakeMessagingControllerMailChecker( + listenerExecutor = listenerExecutor, + ), + ) + + val result = testSubject(FakeData.ACCOUNT).first() + + assertThat(result.isSuccess).isEqualTo(true) + } + private class FakeMessagingControllerMailChecker( private val listenerExecutor: (MessagingListener?) -> Unit = {}, ) : MessagingControllerMailChecker { diff --git a/feature/navigation/drawer/src/test/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerStateTest.kt b/feature/navigation/drawer/src/test/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerStateTest.kt index 93f88e09d9..60dfcfa2ee 100644 --- a/feature/navigation/drawer/src/test/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerStateTest.kt +++ b/feature/navigation/drawer/src/test/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerStateTest.kt @@ -23,6 +23,7 @@ class DrawerStateTest { selectedAccount = null, folders = persistentListOf(), selectedFolder = null, + showAccountSelector = false, isLoading = false, ), ) diff --git a/feature/navigation/drawer/src/test/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerViewKtTest.kt b/feature/navigation/drawer/src/test/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerViewKtTest.kt index 41c82b3215..70169ffa27 100644 --- a/feature/navigation/drawer/src/test/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerViewKtTest.kt +++ b/feature/navigation/drawer/src/test/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerViewKtTest.kt @@ -20,12 +20,16 @@ class DrawerViewKtTest : ComposeTest() { val viewModel = FakeDrawerViewModel(initialState) var openAccountCounter = 0 var openFolderCounter = 0 + var openManageFoldersCounter = 0 + var openSettingsCounter = 0 var closeDrawerCounter = 0 setContentWithTheme { DrawerView( openAccount = { openAccountCounter++ }, openFolder = { openFolderCounter++ }, + openManageFolders = { openManageFoldersCounter++ }, + openSettings = { openSettingsCounter++ }, closeDrawer = { closeDrawerCounter++ }, viewModel = viewModel, ) @@ -33,22 +37,48 @@ class DrawerViewKtTest : ComposeTest() { assertThat(openAccountCounter).isEqualTo(0) assertThat(openFolderCounter).isEqualTo(0) + assertThat(openManageFoldersCounter).isEqualTo(0) + assertThat(openSettingsCounter).isEqualTo(0) assertThat(closeDrawerCounter).isEqualTo(0) viewModel.effect(Effect.OpenAccount(FakeData.ACCOUNT)) assertThat(openAccountCounter).isEqualTo(1) + assertThat(openFolderCounter).isEqualTo(0) + assertThat(openManageFoldersCounter).isEqualTo(0) + assertThat(openSettingsCounter).isEqualTo(0) + assertThat(closeDrawerCounter).isEqualTo(0) viewModel.effect(Effect.OpenFolder(1)) assertThat(openAccountCounter).isEqualTo(1) assertThat(openFolderCounter).isEqualTo(1) + assertThat(openManageFoldersCounter).isEqualTo(0) + assertThat(openSettingsCounter).isEqualTo(0) + assertThat(closeDrawerCounter).isEqualTo(0) + + viewModel.effect(Effect.OpenManageFolders) + + assertThat(openAccountCounter).isEqualTo(1) + assertThat(openFolderCounter).isEqualTo(1) + assertThat(openManageFoldersCounter).isEqualTo(1) + assertThat(openSettingsCounter).isEqualTo(0) + assertThat(closeDrawerCounter).isEqualTo(0) + + viewModel.effect(Effect.OpenSettings) + + assertThat(openAccountCounter).isEqualTo(1) + assertThat(openFolderCounter).isEqualTo(1) + assertThat(openManageFoldersCounter).isEqualTo(1) + assertThat(openSettingsCounter).isEqualTo(1) assertThat(closeDrawerCounter).isEqualTo(0) viewModel.effect(Effect.CloseDrawer) assertThat(openAccountCounter).isEqualTo(1) assertThat(openFolderCounter).isEqualTo(1) + assertThat(openManageFoldersCounter).isEqualTo(1) + assertThat(openSettingsCounter).isEqualTo(1) assertThat(closeDrawerCounter).isEqualTo(1) } @@ -63,6 +93,8 @@ class DrawerViewKtTest : ComposeTest() { DrawerView( openAccount = {}, openFolder = {}, + openManageFolders = {}, + openSettings = {}, closeDrawer = {}, viewModel = viewModel, ) diff --git a/feature/navigation/drawer/src/test/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerViewModelTest.kt b/feature/navigation/drawer/src/test/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerViewModelTest.kt index 30bbd1a4d1..08d3b1b380 100644 --- a/feature/navigation/drawer/src/test/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerViewModelTest.kt +++ b/feature/navigation/drawer/src/test/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerViewModelTest.kt @@ -4,6 +4,7 @@ import app.k9mail.core.mail.folder.api.Folder import app.k9mail.core.mail.folder.api.FolderType import app.k9mail.core.ui.compose.testing.MainDispatcherRule import app.k9mail.core.ui.compose.testing.mvi.assertThatAndEffectTurbineConsumed +import app.k9mail.core.ui.compose.testing.mvi.assertThatAndStateTurbineConsumed import app.k9mail.core.ui.compose.testing.mvi.eventStateTest import app.k9mail.core.ui.compose.testing.mvi.turbinesWithInitialStateCheck import app.k9mail.feature.navigation.drawer.domain.entity.DisplayAccount @@ -229,6 +230,46 @@ class DrawerViewModelTest { } } + @Test + fun `should change state when OnAccountSelectorClick event is received`() = runTest { + val testSubject = createTestSubject() + val turbines = turbinesWithInitialStateCheck(testSubject, State()) + + testSubject.event(Event.OnAccountSelectorClick) + + assertThat(turbines.awaitStateItem()).isEqualTo(State(showAccountSelector = true)) + + testSubject.event(Event.OnAccountSelectorClick) + + turbines.assertThatAndStateTurbineConsumed { + isEqualTo(State(showAccountSelector = false)) + } + } + + @Test + fun `should emit OpenManageFolders effect when OnManageFoldersClick event is received`() = runTest { + val testSubject = createTestSubject() + val turbines = turbinesWithInitialStateCheck(testSubject, State()) + + testSubject.event(Event.OnManageFoldersClick) + + turbines.assertThatAndEffectTurbineConsumed { + isEqualTo(Effect.OpenManageFolders) + } + } + + @Test + fun `should emit OpenSettings effect when OnSettingsClick event is received`() = runTest { + val testSubject = createTestSubject() + val turbines = turbinesWithInitialStateCheck(testSubject, State()) + + testSubject.event(Event.OnSettingsClick) + + turbines.assertThatAndEffectTurbineConsumed { + isEqualTo(Effect.OpenSettings) + } + } + private fun createTestSubject( drawerConfigFlow: Flow = flow { emit(createDrawerConfig()) }, displayAccountsFlow: Flow> = flow { emit(emptyList()) }, diff --git a/legacy/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt b/legacy/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt index 986179682c..a92682556a 100644 --- a/legacy/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt +++ b/legacy/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt @@ -596,7 +596,7 @@ open class MessageList : navigationDrawer = LegacyDrawer( parent = this, savedInstanceState = savedInstanceState, - openFolders = { launchManageFoldersScreen() }, + openManageFolders = { launchManageFoldersScreen() }, openUnifiedInbox = { openUnifiedInbox() }, openFolder = { folderId -> openFolder(folderId) }, openAccount = { account -> openRealAccount(account) }, @@ -610,6 +610,8 @@ open class MessageList : parent = this, openAccount = { account -> openRealAccount(account) }, openFolder = { folderId -> openFolder(folderId) }, + openManageFolders = { launchManageFoldersScreen() }, + openSettings = { SettingsActivity.launch(this) }, createDrawerListener = { createDrawerListener() }, ) } From 3c17c76898e6c520dadf9d572cc471dd75ec2a0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolf-Martell=20Montw=C3=A9?= Date: Tue, 17 Sep 2024 12:59:47 +0200 Subject: [PATCH 3/3] Rename string name --- .../app/k9mail/feature/navigation/drawer/LegacyDrawer.kt | 2 +- feature/navigation/drawer/src/main/res/values-ar/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-be/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-bg/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-br/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-bs/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-ca/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-co/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-cs/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-cy/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-da/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-de/strings.xml | 4 ++-- feature/navigation/drawer/src/main/res/values-el/strings.xml | 2 +- .../navigation/drawer/src/main/res/values-en-rGB/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-eo/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-es/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-et/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-eu/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-fa/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-fi/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-fr/strings.xml | 4 ++-- feature/navigation/drawer/src/main/res/values-fy/strings.xml | 4 ++-- feature/navigation/drawer/src/main/res/values-gd/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-gl/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-hi/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-hr/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-hu/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-in/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-is/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-it/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-iw/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-ja/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-ka/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-ko/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-lt/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-lv/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-ml/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-nb/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-nl/strings.xml | 4 ++-- feature/navigation/drawer/src/main/res/values-pl/strings.xml | 2 +- .../navigation/drawer/src/main/res/values-pt-rBR/strings.xml | 2 +- .../navigation/drawer/src/main/res/values-pt-rPT/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-ro/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-ru/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-sk/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-sl/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-sq/strings.xml | 4 ++-- feature/navigation/drawer/src/main/res/values-sr/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-sv/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-tr/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-uk/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values-vi/strings.xml | 2 +- .../navigation/drawer/src/main/res/values-zh-rCN/strings.xml | 2 +- .../navigation/drawer/src/main/res/values-zh-rTW/strings.xml | 2 +- feature/navigation/drawer/src/main/res/values/strings.xml | 2 +- 55 files changed, 60 insertions(+), 60 deletions(-) diff --git a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/LegacyDrawer.kt b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/LegacyDrawer.kt index bf82131689..30456cc221 100644 --- a/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/LegacyDrawer.kt +++ b/feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/LegacyDrawer.kt @@ -290,7 +290,7 @@ class LegacyDrawer( private fun addFooterItems() { sliderView.addStickyFooterItem( PrimaryDrawerItem().apply { - nameRes = R.string.navigation_drawer_action_folders + nameRes = R.string.navigation_drawer_action_manage_folders iconRes = Icons.Outlined.Folder identifier = DRAWER_ID_FOLDERS isSelectable = false diff --git a/feature/navigation/drawer/src/main/res/values-ar/strings.xml b/feature/navigation/drawer/src/main/res/values-ar/strings.xml index 9996253653..694476f8b4 100644 --- a/feature/navigation/drawer/src/main/res/values-ar/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-ar/strings.xml @@ -1,6 +1,6 @@ الإعدادات - إدارة المجلدات + إدارة المجلدات البريد الوارد الموحَّد diff --git a/feature/navigation/drawer/src/main/res/values-be/strings.xml b/feature/navigation/drawer/src/main/res/values-be/strings.xml index 11cf71a4cf..85c2fcb330 100644 --- a/feature/navigation/drawer/src/main/res/values-be/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-be/strings.xml @@ -1,6 +1,6 @@ Налады - Кіраванне каталогамі + Кіраванне каталогамі Усе атрыманыя diff --git a/feature/navigation/drawer/src/main/res/values-bg/strings.xml b/feature/navigation/drawer/src/main/res/values-bg/strings.xml index 68c707b566..200ba265c2 100644 --- a/feature/navigation/drawer/src/main/res/values-bg/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-bg/strings.xml @@ -1,6 +1,6 @@ Настройки - Управление на папки + Управление на папки Обща входяща кутия diff --git a/feature/navigation/drawer/src/main/res/values-br/strings.xml b/feature/navigation/drawer/src/main/res/values-br/strings.xml index 14d769ddd6..6dfc3eef28 100644 --- a/feature/navigation/drawer/src/main/res/values-br/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-br/strings.xml @@ -1,6 +1,6 @@ Arventennoù - Merañ an teuliadoù + Merañ an teuliadoù Boest degemer unanet diff --git a/feature/navigation/drawer/src/main/res/values-bs/strings.xml b/feature/navigation/drawer/src/main/res/values-bs/strings.xml index 1c6651bb26..d3c6ef036f 100644 --- a/feature/navigation/drawer/src/main/res/values-bs/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-bs/strings.xml @@ -1,5 +1,5 @@ Postavke - Upravljajte direktorijumima + Upravljajte direktorijumima diff --git a/feature/navigation/drawer/src/main/res/values-ca/strings.xml b/feature/navigation/drawer/src/main/res/values-ca/strings.xml index 42a98f4a92..c4c005a81b 100644 --- a/feature/navigation/drawer/src/main/res/values-ca/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-ca/strings.xml @@ -1,6 +1,6 @@ Configuració - Gestioneu les carpetes + Gestioneu les carpetes Bústia d\'entrada unificada diff --git a/feature/navigation/drawer/src/main/res/values-co/strings.xml b/feature/navigation/drawer/src/main/res/values-co/strings.xml index 8f8fe58766..96811e8c55 100644 --- a/feature/navigation/drawer/src/main/res/values-co/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-co/strings.xml @@ -1,6 +1,6 @@ Parametri - Ghjestione di i cartulari + Ghjestione di i cartulari Ricezzione cuncolta diff --git a/feature/navigation/drawer/src/main/res/values-cs/strings.xml b/feature/navigation/drawer/src/main/res/values-cs/strings.xml index f3d8af7c73..bbdf5ae9b7 100644 --- a/feature/navigation/drawer/src/main/res/values-cs/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-cs/strings.xml @@ -1,6 +1,6 @@ Nastavení - Správa složek + Správa složek Integrovaná doručená pošta diff --git a/feature/navigation/drawer/src/main/res/values-cy/strings.xml b/feature/navigation/drawer/src/main/res/values-cy/strings.xml index ef5d244a29..6ad5999f67 100644 --- a/feature/navigation/drawer/src/main/res/values-cy/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-cy/strings.xml @@ -1,6 +1,6 @@ Gosodiadau - Rheoli ffolderi + Rheoli ffolderi Mewnflwch Unedig diff --git a/feature/navigation/drawer/src/main/res/values-da/strings.xml b/feature/navigation/drawer/src/main/res/values-da/strings.xml index 072bd4baf7..92151dfc19 100644 --- a/feature/navigation/drawer/src/main/res/values-da/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-da/strings.xml @@ -1,6 +1,6 @@ Indstillinger - Håndtér mapper + Håndtér mapper Fælles indbakke diff --git a/feature/navigation/drawer/src/main/res/values-de/strings.xml b/feature/navigation/drawer/src/main/res/values-de/strings.xml index 13c15b6566..9ccb146aab 100644 --- a/feature/navigation/drawer/src/main/res/values-de/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-de/strings.xml @@ -1,6 +1,6 @@ Einstellungen - Ordner verwalten + Ordner verwalten Gemeinsamer Posteingang - \ No newline at end of file + diff --git a/feature/navigation/drawer/src/main/res/values-el/strings.xml b/feature/navigation/drawer/src/main/res/values-el/strings.xml index 60f12f8f6c..dd6d494014 100644 --- a/feature/navigation/drawer/src/main/res/values-el/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-el/strings.xml @@ -1,6 +1,6 @@ Ρυθμίσεις - Διαχείριση φακέλων + Διαχείριση φακέλων Ενιαία Εισερχόμενα diff --git a/feature/navigation/drawer/src/main/res/values-en-rGB/strings.xml b/feature/navigation/drawer/src/main/res/values-en-rGB/strings.xml index f71f5c69b5..c0d55b2ecd 100644 --- a/feature/navigation/drawer/src/main/res/values-en-rGB/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-en-rGB/strings.xml @@ -1,6 +1,6 @@ Settings - Manage folders + Manage folders Unified Inbox diff --git a/feature/navigation/drawer/src/main/res/values-eo/strings.xml b/feature/navigation/drawer/src/main/res/values-eo/strings.xml index 8d960046a5..29a6723cb2 100644 --- a/feature/navigation/drawer/src/main/res/values-eo/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-eo/strings.xml @@ -1,6 +1,6 @@ Agordoj - Administri mesaĝujojn + Administri mesaĝujojn Unuigita ricevujo diff --git a/feature/navigation/drawer/src/main/res/values-es/strings.xml b/feature/navigation/drawer/src/main/res/values-es/strings.xml index 7a97fa20d5..ae7f6db83c 100644 --- a/feature/navigation/drawer/src/main/res/values-es/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-es/strings.xml @@ -1,6 +1,6 @@ Ajustes - Administrar carpetas + Administrar carpetas Entrada unificada diff --git a/feature/navigation/drawer/src/main/res/values-et/strings.xml b/feature/navigation/drawer/src/main/res/values-et/strings.xml index c20d8217e6..8ffb1b8dd9 100644 --- a/feature/navigation/drawer/src/main/res/values-et/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-et/strings.xml @@ -1,6 +1,6 @@ Sätted - Halda kaustu + Halda kaustu Koondsisendkaust diff --git a/feature/navigation/drawer/src/main/res/values-eu/strings.xml b/feature/navigation/drawer/src/main/res/values-eu/strings.xml index 9d8272e1ad..afdd54bd46 100644 --- a/feature/navigation/drawer/src/main/res/values-eu/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-eu/strings.xml @@ -1,6 +1,6 @@ Ezarpenak - Kudeatu karpetak + Kudeatu karpetak Sarrerako ontzi bateratua diff --git a/feature/navigation/drawer/src/main/res/values-fa/strings.xml b/feature/navigation/drawer/src/main/res/values-fa/strings.xml index 82d6253108..5da9c88894 100644 --- a/feature/navigation/drawer/src/main/res/values-fa/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-fa/strings.xml @@ -1,6 +1,6 @@ تنظیمات - مدیریت پوشه‌ها + مدیریت پوشه‌ها صندوق ورودی یکپارچه diff --git a/feature/navigation/drawer/src/main/res/values-fi/strings.xml b/feature/navigation/drawer/src/main/res/values-fi/strings.xml index ec72a7d1b1..30d33aa18e 100644 --- a/feature/navigation/drawer/src/main/res/values-fi/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-fi/strings.xml @@ -1,6 +1,6 @@ Asetukset - Hallitse kansioita + Hallitse kansioita Yhdistetty saapuneet diff --git a/feature/navigation/drawer/src/main/res/values-fr/strings.xml b/feature/navigation/drawer/src/main/res/values-fr/strings.xml index 1b5e408ea3..238d19d3ad 100644 --- a/feature/navigation/drawer/src/main/res/values-fr/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-fr/strings.xml @@ -1,6 +1,6 @@ Paramètres - Gérer les dossiers + Gérer les dossiers Boîte de réception unifiée - \ No newline at end of file + diff --git a/feature/navigation/drawer/src/main/res/values-fy/strings.xml b/feature/navigation/drawer/src/main/res/values-fy/strings.xml index b2c35e30d1..2e83a5acf2 100644 --- a/feature/navigation/drawer/src/main/res/values-fy/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-fy/strings.xml @@ -1,6 +1,6 @@ Ynstellingen - Mappen beheare + Mappen beheare Kombinearre Postfek YN - \ No newline at end of file + diff --git a/feature/navigation/drawer/src/main/res/values-gd/strings.xml b/feature/navigation/drawer/src/main/res/values-gd/strings.xml index c1fd2b2265..8bd6baa1c2 100644 --- a/feature/navigation/drawer/src/main/res/values-gd/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-gd/strings.xml @@ -1,6 +1,6 @@ Roghainnean - Stiùirich na pasganan + Stiùirich na pasganan An t-oll-bhogsa diff --git a/feature/navigation/drawer/src/main/res/values-gl/strings.xml b/feature/navigation/drawer/src/main/res/values-gl/strings.xml index c12507d7f2..8c6b731269 100644 --- a/feature/navigation/drawer/src/main/res/values-gl/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-gl/strings.xml @@ -1,6 +1,6 @@ Configuración - Xestionar cartafoles + Xestionar cartafoles Entrada unificada diff --git a/feature/navigation/drawer/src/main/res/values-hi/strings.xml b/feature/navigation/drawer/src/main/res/values-hi/strings.xml index 9976b6af07..9d8f2262d3 100644 --- a/feature/navigation/drawer/src/main/res/values-hi/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-hi/strings.xml @@ -1,5 +1,5 @@ सेटिंग - फोल्डर मैनेज करें + फोल्डर मैनेज करें diff --git a/feature/navigation/drawer/src/main/res/values-hr/strings.xml b/feature/navigation/drawer/src/main/res/values-hr/strings.xml index 2c31a6ae67..0f5ab7e5ba 100644 --- a/feature/navigation/drawer/src/main/res/values-hr/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-hr/strings.xml @@ -1,6 +1,6 @@ Podešenja - Upravljanje mapama + Upravljanje mapama Objedinjena Dolazna Pošta diff --git a/feature/navigation/drawer/src/main/res/values-hu/strings.xml b/feature/navigation/drawer/src/main/res/values-hu/strings.xml index 7f2f84fde8..43ce6e4d71 100644 --- a/feature/navigation/drawer/src/main/res/values-hu/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-hu/strings.xml @@ -1,6 +1,6 @@ Beállítások - Mappák kezelése + Mappák kezelése Egységes beérkezett üzenetek diff --git a/feature/navigation/drawer/src/main/res/values-in/strings.xml b/feature/navigation/drawer/src/main/res/values-in/strings.xml index eb6dd0b609..e3bba520c0 100644 --- a/feature/navigation/drawer/src/main/res/values-in/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-in/strings.xml @@ -1,6 +1,6 @@ Pengaturan - Kelola folder + Kelola folder Kotak Masuk Terpadu diff --git a/feature/navigation/drawer/src/main/res/values-is/strings.xml b/feature/navigation/drawer/src/main/res/values-is/strings.xml index 6dcfef1019..7878510a9c 100644 --- a/feature/navigation/drawer/src/main/res/values-is/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-is/strings.xml @@ -1,6 +1,6 @@ Stillingar - Sýsla með möppur + Sýsla með möppur Sameinað innhólf diff --git a/feature/navigation/drawer/src/main/res/values-it/strings.xml b/feature/navigation/drawer/src/main/res/values-it/strings.xml index 59b02c56c5..60a365c68a 100644 --- a/feature/navigation/drawer/src/main/res/values-it/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-it/strings.xml @@ -1,6 +1,6 @@ Impostazioni - Gestione cartelle + Gestione cartelle Posta combinata diff --git a/feature/navigation/drawer/src/main/res/values-iw/strings.xml b/feature/navigation/drawer/src/main/res/values-iw/strings.xml index fa43d0c12c..289408720c 100644 --- a/feature/navigation/drawer/src/main/res/values-iw/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-iw/strings.xml @@ -1,6 +1,6 @@ הגדרות - נהל תיקיות + נהל תיקיות תיבת דואר נכנס אחידה diff --git a/feature/navigation/drawer/src/main/res/values-ja/strings.xml b/feature/navigation/drawer/src/main/res/values-ja/strings.xml index 46703ea287..1c3bf9387e 100644 --- a/feature/navigation/drawer/src/main/res/values-ja/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-ja/strings.xml @@ -1,6 +1,6 @@ 設定 - フォルダーを管理 + フォルダーを管理 統合受信トレイ diff --git a/feature/navigation/drawer/src/main/res/values-ka/strings.xml b/feature/navigation/drawer/src/main/res/values-ka/strings.xml index 9f375c87ef..ff13945b35 100644 --- a/feature/navigation/drawer/src/main/res/values-ka/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-ka/strings.xml @@ -1,6 +1,6 @@ პარამეტრები - საკეცების მართვა + საკეცების მართვა გაერთიანებული შემავალი diff --git a/feature/navigation/drawer/src/main/res/values-ko/strings.xml b/feature/navigation/drawer/src/main/res/values-ko/strings.xml index fd922b15ac..4b34804fc5 100644 --- a/feature/navigation/drawer/src/main/res/values-ko/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-ko/strings.xml @@ -1,6 +1,6 @@ 설정 - 폴더 관리 + 폴더 관리 통합 편지함 diff --git a/feature/navigation/drawer/src/main/res/values-lt/strings.xml b/feature/navigation/drawer/src/main/res/values-lt/strings.xml index e684d66d27..66a8c09002 100644 --- a/feature/navigation/drawer/src/main/res/values-lt/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-lt/strings.xml @@ -1,6 +1,6 @@ Nustatymai - Tvarkyti aplankus + Tvarkyti aplankus Suvestiniai gautieji diff --git a/feature/navigation/drawer/src/main/res/values-lv/strings.xml b/feature/navigation/drawer/src/main/res/values-lv/strings.xml index 63180628b9..eea3963199 100644 --- a/feature/navigation/drawer/src/main/res/values-lv/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-lv/strings.xml @@ -1,6 +1,6 @@ Iestatījumi - Pārvaldīt mapes + Pārvaldīt mapes Apvienotā Iesūtne diff --git a/feature/navigation/drawer/src/main/res/values-ml/strings.xml b/feature/navigation/drawer/src/main/res/values-ml/strings.xml index 660960f939..5c85cff6ca 100644 --- a/feature/navigation/drawer/src/main/res/values-ml/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-ml/strings.xml @@ -1,6 +1,6 @@ സജ്ജീകരണങ്ങൾ - ഫോൾഡറുകൾ നിയന്ത്രിക്കുക + ഫോൾഡറുകൾ നിയന്ത്രിക്കുക ഏകീകൃത ഇൻ‌ബോക്സ് diff --git a/feature/navigation/drawer/src/main/res/values-nb/strings.xml b/feature/navigation/drawer/src/main/res/values-nb/strings.xml index 2d80b4283e..6625b46709 100644 --- a/feature/navigation/drawer/src/main/res/values-nb/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-nb/strings.xml @@ -1,6 +1,6 @@ Innstillinger - Behandle mapper + Behandle mapper Samlet innboks diff --git a/feature/navigation/drawer/src/main/res/values-nl/strings.xml b/feature/navigation/drawer/src/main/res/values-nl/strings.xml index 41e0f87e03..70a96262d1 100644 --- a/feature/navigation/drawer/src/main/res/values-nl/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-nl/strings.xml @@ -1,6 +1,6 @@ Instellingen - Mappen beheren + Mappen beheren Samengevoegd Postvak IN - \ No newline at end of file + diff --git a/feature/navigation/drawer/src/main/res/values-pl/strings.xml b/feature/navigation/drawer/src/main/res/values-pl/strings.xml index 7eb966ad92..711df10c7b 100644 --- a/feature/navigation/drawer/src/main/res/values-pl/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-pl/strings.xml @@ -1,6 +1,6 @@ Ustawienia - Zarządzaj folderami + Zarządzaj folderami Zintegrowana odbiorcza diff --git a/feature/navigation/drawer/src/main/res/values-pt-rBR/strings.xml b/feature/navigation/drawer/src/main/res/values-pt-rBR/strings.xml index 699dca065a..60fc9e76d5 100644 --- a/feature/navigation/drawer/src/main/res/values-pt-rBR/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-pt-rBR/strings.xml @@ -1,6 +1,6 @@ Configurações - Gerenciar pastas + Gerenciar pastas Caixa de Entrada Unificada diff --git a/feature/navigation/drawer/src/main/res/values-pt-rPT/strings.xml b/feature/navigation/drawer/src/main/res/values-pt-rPT/strings.xml index 09966b607a..a8789d670d 100644 --- a/feature/navigation/drawer/src/main/res/values-pt-rPT/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-pt-rPT/strings.xml @@ -1,6 +1,6 @@ Configurações - Gerir pastas + Gerir pastas Caixa de entrada unificada diff --git a/feature/navigation/drawer/src/main/res/values-ro/strings.xml b/feature/navigation/drawer/src/main/res/values-ro/strings.xml index db9e9fe1e6..9bfe5d70df 100644 --- a/feature/navigation/drawer/src/main/res/values-ro/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-ro/strings.xml @@ -1,6 +1,6 @@ Opțiuni - Gestionează dosarele + Gestionează dosarele Căsuță poștală unificată diff --git a/feature/navigation/drawer/src/main/res/values-ru/strings.xml b/feature/navigation/drawer/src/main/res/values-ru/strings.xml index b5abb7bfff..b5456de614 100644 --- a/feature/navigation/drawer/src/main/res/values-ru/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-ru/strings.xml @@ -1,6 +1,6 @@ Настройки - Выбрать папки + Выбрать папки Входящие diff --git a/feature/navigation/drawer/src/main/res/values-sk/strings.xml b/feature/navigation/drawer/src/main/res/values-sk/strings.xml index c71c61a6a0..4b241adbca 100644 --- a/feature/navigation/drawer/src/main/res/values-sk/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-sk/strings.xml @@ -1,6 +1,6 @@ Nastavenia - Spravovať priečinky + Spravovať priečinky Jednotná schránka diff --git a/feature/navigation/drawer/src/main/res/values-sl/strings.xml b/feature/navigation/drawer/src/main/res/values-sl/strings.xml index 82977d5d8c..1683a589b8 100644 --- a/feature/navigation/drawer/src/main/res/values-sl/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-sl/strings.xml @@ -1,6 +1,6 @@ Nastavitve - Upravljanje z mapami + Upravljanje z mapami Skupna mapa prejetih sporočil diff --git a/feature/navigation/drawer/src/main/res/values-sq/strings.xml b/feature/navigation/drawer/src/main/res/values-sq/strings.xml index 311a552e3e..c9116ca65a 100644 --- a/feature/navigation/drawer/src/main/res/values-sq/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-sq/strings.xml @@ -1,6 +1,6 @@ Rregullime - Administroni dosje + Administroni dosje Kuti Poste e Njësuar - \ No newline at end of file + diff --git a/feature/navigation/drawer/src/main/res/values-sr/strings.xml b/feature/navigation/drawer/src/main/res/values-sr/strings.xml index 955d452bbf..5871484731 100644 --- a/feature/navigation/drawer/src/main/res/values-sr/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-sr/strings.xml @@ -1,6 +1,6 @@ Поставке - Управљај фасциклама + Управљај фасциклама Обједињено сандуче diff --git a/feature/navigation/drawer/src/main/res/values-sv/strings.xml b/feature/navigation/drawer/src/main/res/values-sv/strings.xml index d100915074..453f7820ea 100644 --- a/feature/navigation/drawer/src/main/res/values-sv/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-sv/strings.xml @@ -1,6 +1,6 @@ Inställningar - Hantera mappar + Hantera mappar Samlad inkorg diff --git a/feature/navigation/drawer/src/main/res/values-tr/strings.xml b/feature/navigation/drawer/src/main/res/values-tr/strings.xml index ca4734d950..6bac15d4be 100644 --- a/feature/navigation/drawer/src/main/res/values-tr/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-tr/strings.xml @@ -1,6 +1,6 @@ Ayarlar - Klasörleri yönet + Klasörleri yönet Birleşik Gelen Kutusu diff --git a/feature/navigation/drawer/src/main/res/values-uk/strings.xml b/feature/navigation/drawer/src/main/res/values-uk/strings.xml index eba5d643a8..afbbaefdbd 100644 --- a/feature/navigation/drawer/src/main/res/values-uk/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-uk/strings.xml @@ -1,6 +1,6 @@ Налаштування - Керування теками + Керування теками Об\'єднані Вхідні diff --git a/feature/navigation/drawer/src/main/res/values-vi/strings.xml b/feature/navigation/drawer/src/main/res/values-vi/strings.xml index 75630ac9c7..1a3658803a 100644 --- a/feature/navigation/drawer/src/main/res/values-vi/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-vi/strings.xml @@ -1,6 +1,6 @@ Thiết đặt - Quản lý thư mục + Quản lý thư mục Hộp thư đồng nhất diff --git a/feature/navigation/drawer/src/main/res/values-zh-rCN/strings.xml b/feature/navigation/drawer/src/main/res/values-zh-rCN/strings.xml index 295827cd82..3b4e7f1858 100644 --- a/feature/navigation/drawer/src/main/res/values-zh-rCN/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-zh-rCN/strings.xml @@ -1,6 +1,6 @@ 设置 - 管理文件夹 + 管理文件夹 统一收件箱 diff --git a/feature/navigation/drawer/src/main/res/values-zh-rTW/strings.xml b/feature/navigation/drawer/src/main/res/values-zh-rTW/strings.xml index 4419d9ed69..400f1fc924 100644 --- a/feature/navigation/drawer/src/main/res/values-zh-rTW/strings.xml +++ b/feature/navigation/drawer/src/main/res/values-zh-rTW/strings.xml @@ -1,6 +1,6 @@ 設定 - 整理信件匣 + 整理信件匣 全域收件匣 diff --git a/feature/navigation/drawer/src/main/res/values/strings.xml b/feature/navigation/drawer/src/main/res/values/strings.xml index c5ac4f07a0..8fd4800095 100644 --- a/feature/navigation/drawer/src/main/res/values/strings.xml +++ b/feature/navigation/drawer/src/main/res/values/strings.xml @@ -1,7 +1,7 @@ Settings - Manage folders + Manage folders Show accounts Hide accounts Unified Inbox