Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 6ee6123d authored by Wolf-Martell Montwé's avatar Wolf-Martell Montwé Committed by GitHub
Browse files

Merge pull request #8147 from wmontwe/add-drawer-settings-view

Add drawer bottom view
parents 4d91beab 3c17c768
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -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

+134 −0
Original line number Diff line number Diff line
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
+18 −0
Original line number Diff line number Diff line
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,
        )
    }
}
+29 −0
Original line number Diff line number Diff line
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,
        )
    }
}
+4 −0
Original line number Diff line number Diff line
@@ -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() },
                )
            }
Loading