Loading feature/navigation/drawer/src/debug/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerContentPreview.kt +20 −1 Original line number Original line Diff line number Diff line Loading @@ -3,11 +3,30 @@ package app.k9mail.feature.navigation.drawer.ui import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview import app.k9mail.core.ui.compose.designsystem.PreviewWithTheme import app.k9mail.core.ui.compose.designsystem.PreviewWithTheme import app.k9mail.feature.navigation.drawer.ui.account.FakeData.DISPLAY_ACCOUNT @Composable @Composable @Preview(showBackground = true) @Preview(showBackground = true) internal fun DrawerContentPreview() { internal fun DrawerContentPreview() { PreviewWithTheme { PreviewWithTheme { DrawerContent() DrawerContent( state = DrawerContract.State( accounts = emptyList(), currentAccount = null, ), ) } } @Composable @Preview(showBackground = true) fun DrawerContentWithAccountPreview() { PreviewWithTheme { DrawerContent( state = DrawerContract.State( accounts = listOf(DISPLAY_ACCOUNT), currentAccount = DISPLAY_ACCOUNT, ), ) } } } } feature/navigation/drawer/src/debug/kotlin/app/k9mail/feature/navigation/drawer/ui/account/AccountViewPreview.kt +3 −7 Original line number Original line Diff line number Diff line Loading @@ -3,6 +3,9 @@ package app.k9mail.feature.navigation.drawer.ui.account import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview import app.k9mail.core.ui.compose.designsystem.PreviewWithThemes import app.k9mail.core.ui.compose.designsystem.PreviewWithThemes import app.k9mail.feature.navigation.drawer.ui.account.FakeData.DISPLAY_NAME import app.k9mail.feature.navigation.drawer.ui.account.FakeData.EMAIL_ADDRESS import app.k9mail.feature.navigation.drawer.ui.account.FakeData.LONG_TEXT @Composable @Composable @Preview(showBackground = true) @Preview(showBackground = true) Loading Loading @@ -51,10 +54,3 @@ internal fun AccountViewWithLongEmailPreview() { ) ) } } } } private const val DISPLAY_NAME = "Account Name" private const val EMAIL_ADDRESS = "test@example.com" private const val LONG_TEXT = "loremipsumdolorsitametconsetetursadipscingelitr" + "seddiamnonumyeirmodtemporinviduntutlaboreetdoloremagnaaliquyameratseddiamvoluptua" feature/navigation/drawer/src/debug/kotlin/app/k9mail/feature/navigation/drawer/ui/account/FakeData.kt 0 → 100644 +37 −0 Original line number Original line Diff line number Diff line package app.k9mail.feature.navigation.drawer.ui.account import app.k9mail.feature.navigation.drawer.domain.entity.DisplayAccount import app.k9mail.legacy.account.Account import app.k9mail.legacy.account.Identity internal object FakeData { const val ACCOUNT_UUID = "uuid" const val DISPLAY_NAME = "Account Name" const val EMAIL_ADDRESS = "test@example.com" const val LONG_TEXT = "loremipsumdolorsitametconsetetursadipscingelitr" + "seddiamnonumyeirmodtemporinviduntutlaboreetdoloremagnaaliquyameratseddiamvoluptua" val ACCOUNT = Account( uuid = ACCOUNT_UUID, ).apply { identities = ArrayList() val identity = Identity( signatureUse = false, signature = "", description = "", ) identities.add(identity) name = DISPLAY_NAME email = EMAIL_ADDRESS } val DISPLAY_ACCOUNT = DisplayAccount( account = ACCOUNT, unreadMessageCount = 0, starredMessageCount = 0, ) } feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/NavigationDrawerModule.kt +5 −1 Original line number Original line Diff line number Diff line Loading @@ -39,5 +39,9 @@ val navigationDrawerModule: Module = module { ) ) } } viewModel { DrawerViewModel() } viewModel { DrawerViewModel( getDisplayAccounts = get(), ) } } } feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerContent.kt +40 −19 Original line number Original line Diff line number Diff line package app.k9mail.feature.navigation.drawer.ui 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.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag 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.designsystem.atom.Surface import app.k9mail.core.ui.compose.designsystem.organism.drawer.NavigationDrawerItem import app.k9mail.core.ui.compose.designsystem.organism.drawer.NavigationDrawerItem import app.k9mail.core.ui.compose.theme2.MainTheme import app.k9mail.core.ui.compose.theme2.MainTheme import app.k9mail.feature.navigation.drawer.ui.DrawerContract.State import app.k9mail.feature.navigation.drawer.ui.account.AccountView @Composable @Composable fun DrawerContent( fun DrawerContent( state: State, modifier: Modifier = Modifier, modifier: Modifier = Modifier, ) { ) { Surface( Surface( Loading @@ -19,12 +25,26 @@ fun DrawerContent( .fillMaxSize() .fillMaxSize() .testTag("DrawerContent"), .testTag("DrawerContent"), ) { ) { LazyColumn( Column( modifier = Modifier modifier = Modifier .fillMaxSize() .fillMaxSize() .padding( .padding( vertical = MainTheme.spacings.oneHalf, vertical = MainTheme.spacings.oneHalf, ), ), verticalArrangement = Arrangement.spacedBy(MainTheme.spacings.default), ) { state.currentAccount?.let { AccountView( displayName = it.account.displayName, emailAddress = it.account.email, accountColor = it.account.chipColor, ) DividerHorizontal() } LazyColumn( modifier = Modifier .fillMaxSize(), ) { ) { item { item { NavigationDrawerItem( NavigationDrawerItem( Loading @@ -50,3 +70,4 @@ fun DrawerContent( } } } } } } } Loading
feature/navigation/drawer/src/debug/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerContentPreview.kt +20 −1 Original line number Original line Diff line number Diff line Loading @@ -3,11 +3,30 @@ package app.k9mail.feature.navigation.drawer.ui import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview import app.k9mail.core.ui.compose.designsystem.PreviewWithTheme import app.k9mail.core.ui.compose.designsystem.PreviewWithTheme import app.k9mail.feature.navigation.drawer.ui.account.FakeData.DISPLAY_ACCOUNT @Composable @Composable @Preview(showBackground = true) @Preview(showBackground = true) internal fun DrawerContentPreview() { internal fun DrawerContentPreview() { PreviewWithTheme { PreviewWithTheme { DrawerContent() DrawerContent( state = DrawerContract.State( accounts = emptyList(), currentAccount = null, ), ) } } @Composable @Preview(showBackground = true) fun DrawerContentWithAccountPreview() { PreviewWithTheme { DrawerContent( state = DrawerContract.State( accounts = listOf(DISPLAY_ACCOUNT), currentAccount = DISPLAY_ACCOUNT, ), ) } } } }
feature/navigation/drawer/src/debug/kotlin/app/k9mail/feature/navigation/drawer/ui/account/AccountViewPreview.kt +3 −7 Original line number Original line Diff line number Diff line Loading @@ -3,6 +3,9 @@ package app.k9mail.feature.navigation.drawer.ui.account import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview import app.k9mail.core.ui.compose.designsystem.PreviewWithThemes import app.k9mail.core.ui.compose.designsystem.PreviewWithThemes import app.k9mail.feature.navigation.drawer.ui.account.FakeData.DISPLAY_NAME import app.k9mail.feature.navigation.drawer.ui.account.FakeData.EMAIL_ADDRESS import app.k9mail.feature.navigation.drawer.ui.account.FakeData.LONG_TEXT @Composable @Composable @Preview(showBackground = true) @Preview(showBackground = true) Loading Loading @@ -51,10 +54,3 @@ internal fun AccountViewWithLongEmailPreview() { ) ) } } } } private const val DISPLAY_NAME = "Account Name" private const val EMAIL_ADDRESS = "test@example.com" private const val LONG_TEXT = "loremipsumdolorsitametconsetetursadipscingelitr" + "seddiamnonumyeirmodtemporinviduntutlaboreetdoloremagnaaliquyameratseddiamvoluptua"
feature/navigation/drawer/src/debug/kotlin/app/k9mail/feature/navigation/drawer/ui/account/FakeData.kt 0 → 100644 +37 −0 Original line number Original line Diff line number Diff line package app.k9mail.feature.navigation.drawer.ui.account import app.k9mail.feature.navigation.drawer.domain.entity.DisplayAccount import app.k9mail.legacy.account.Account import app.k9mail.legacy.account.Identity internal object FakeData { const val ACCOUNT_UUID = "uuid" const val DISPLAY_NAME = "Account Name" const val EMAIL_ADDRESS = "test@example.com" const val LONG_TEXT = "loremipsumdolorsitametconsetetursadipscingelitr" + "seddiamnonumyeirmodtemporinviduntutlaboreetdoloremagnaaliquyameratseddiamvoluptua" val ACCOUNT = Account( uuid = ACCOUNT_UUID, ).apply { identities = ArrayList() val identity = Identity( signatureUse = false, signature = "", description = "", ) identities.add(identity) name = DISPLAY_NAME email = EMAIL_ADDRESS } val DISPLAY_ACCOUNT = DisplayAccount( account = ACCOUNT, unreadMessageCount = 0, starredMessageCount = 0, ) }
feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/NavigationDrawerModule.kt +5 −1 Original line number Original line Diff line number Diff line Loading @@ -39,5 +39,9 @@ val navigationDrawerModule: Module = module { ) ) } } viewModel { DrawerViewModel() } viewModel { DrawerViewModel( getDisplayAccounts = get(), ) } } }
feature/navigation/drawer/src/main/kotlin/app/k9mail/feature/navigation/drawer/ui/DrawerContent.kt +40 −19 Original line number Original line Diff line number Diff line package app.k9mail.feature.navigation.drawer.ui 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.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag 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.designsystem.atom.Surface import app.k9mail.core.ui.compose.designsystem.organism.drawer.NavigationDrawerItem import app.k9mail.core.ui.compose.designsystem.organism.drawer.NavigationDrawerItem import app.k9mail.core.ui.compose.theme2.MainTheme import app.k9mail.core.ui.compose.theme2.MainTheme import app.k9mail.feature.navigation.drawer.ui.DrawerContract.State import app.k9mail.feature.navigation.drawer.ui.account.AccountView @Composable @Composable fun DrawerContent( fun DrawerContent( state: State, modifier: Modifier = Modifier, modifier: Modifier = Modifier, ) { ) { Surface( Surface( Loading @@ -19,12 +25,26 @@ fun DrawerContent( .fillMaxSize() .fillMaxSize() .testTag("DrawerContent"), .testTag("DrawerContent"), ) { ) { LazyColumn( Column( modifier = Modifier modifier = Modifier .fillMaxSize() .fillMaxSize() .padding( .padding( vertical = MainTheme.spacings.oneHalf, vertical = MainTheme.spacings.oneHalf, ), ), verticalArrangement = Arrangement.spacedBy(MainTheme.spacings.default), ) { state.currentAccount?.let { AccountView( displayName = it.account.displayName, emailAddress = it.account.email, accountColor = it.account.chipColor, ) DividerHorizontal() } LazyColumn( modifier = Modifier .fillMaxSize(), ) { ) { item { item { NavigationDrawerItem( NavigationDrawerItem( Loading @@ -50,3 +70,4 @@ fun DrawerContent( } } } } } } }