From f7fd71f64e0aeeb44f9418d16f692bb432c5d90f Mon Sep 17 00:00:00 2001 From: Mike Penz Date: Sat, 18 Feb 2023 17:31:14 +0100 Subject: [PATCH] - introduce ability to configure item spacing - FIX https://github.com/mikepenz/AboutLibraries/issues/841 --- .../aboutlibraries/ui/compose/Libraries.kt | 3 ++ .../ui/compose/SharedLibraries.kt | 12 ++++- .../aboutlibraries/ui/compose/Libraries.kt | 49 ++++++++++--------- 3 files changed, 40 insertions(+), 24 deletions(-) diff --git a/aboutlibraries-compose/src/androidMain/kotlin/com/mikepenz/aboutlibraries/ui/compose/Libraries.kt b/aboutlibraries-compose/src/androidMain/kotlin/com/mikepenz/aboutlibraries/ui/compose/Libraries.kt index 5b1774dda..e147f3ec0 100644 --- a/aboutlibraries-compose/src/androidMain/kotlin/com/mikepenz/aboutlibraries/ui/compose/Libraries.kt +++ b/aboutlibraries-compose/src/androidMain/kotlin/com/mikepenz/aboutlibraries/ui/compose/Libraries.kt @@ -20,6 +20,7 @@ import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView import androidx.core.text.HtmlCompat @@ -48,6 +49,7 @@ fun LibrariesContainer( colors: LibraryColors = LibraryDefaults.libraryColors(), padding: LibraryPadding = LibraryDefaults.libraryPadding(), itemContentPadding: PaddingValues = LibraryDefaults.ContentPadding, + itemSpacing: Dp = LibraryDefaults.LibraryItemSpacing, header: (LazyListScope.() -> Unit)? = null, onLibraryClick: ((Library) -> Unit)? = null, ) { @@ -73,6 +75,7 @@ fun LibrariesContainer( colors = colors, padding = padding, itemContentPadding = itemContentPadding, + itemSpacing = itemSpacing, header = header, onLibraryClick = { library -> if (onLibraryClick != null) { diff --git a/aboutlibraries-compose/src/commonMain/kotlin/com/mikepenz/aboutlibraries/ui/compose/SharedLibraries.kt b/aboutlibraries-compose/src/commonMain/kotlin/com/mikepenz/aboutlibraries/ui/compose/SharedLibraries.kt index bd03a48b2..a4f3f17e5 100644 --- a/aboutlibraries-compose/src/commonMain/kotlin/com/mikepenz/aboutlibraries/ui/compose/SharedLibraries.kt +++ b/aboutlibraries-compose/src/commonMain/kotlin/com/mikepenz/aboutlibraries/ui/compose/SharedLibraries.kt @@ -13,6 +13,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.mikepenz.aboutlibraries.entity.Library import com.mikepenz.aboutlibraries.ui.compose.util.author @@ -32,10 +33,16 @@ fun Libraries( colors: LibraryColors = LibraryDefaults.libraryColors(), padding: LibraryPadding = LibraryDefaults.libraryPadding(), itemContentPadding: PaddingValues = LibraryDefaults.ContentPadding, + itemSpacing: Dp = LibraryDefaults.LibraryItemSpacing, header: (LazyListScope.() -> Unit)? = null, onLibraryClick: ((Library) -> Unit)? = null, ) { - LazyColumn(modifier, state = lazyListState, contentPadding = contentPadding) { + LazyColumn( + modifier, + verticalArrangement = Arrangement.spacedBy(itemSpacing), + state = lazyListState, + contentPadding = contentPadding + ) { header?.invoke(this) libraryItems( libraries, @@ -157,6 +164,7 @@ object LibraryDefaults { private val LibraryVersionPaddingStart = 8.dp private val LibraryBadgePaddingTop = 8.dp private val LibraryBadgePaddingEnd = 4.dp + internal val LibraryItemSpacing = 0.dp /** * The default content padding used by [Library] @@ -206,7 +214,7 @@ object LibraryDefaults { namePadding = namePadding, versionPadding = versionPadding, badgePadding = badgePadding, - badgeContentPadding = badgeContentPadding + badgeContentPadding = badgeContentPadding, ) } diff --git a/aboutlibraries-compose/src/nonAndroidMain/kotlin/com/mikepenz/aboutlibraries/ui/compose/Libraries.kt b/aboutlibraries-compose/src/nonAndroidMain/kotlin/com/mikepenz/aboutlibraries/ui/compose/Libraries.kt index 83c5198a2..61bfb6b77 100644 --- a/aboutlibraries-compose/src/nonAndroidMain/kotlin/com/mikepenz/aboutlibraries/ui/compose/Libraries.kt +++ b/aboutlibraries-compose/src/nonAndroidMain/kotlin/com/mikepenz/aboutlibraries/ui/compose/Libraries.kt @@ -7,6 +7,7 @@ import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.runtime.Composable import androidx.compose.runtime.produceState import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.mikepenz.aboutlibraries.Libs import com.mikepenz.aboutlibraries.entity.Library @@ -28,22 +29,24 @@ fun LibrariesContainer( colors: LibraryColors = LibraryDefaults.libraryColors(), padding: LibraryPadding = LibraryDefaults.libraryPadding(), itemContentPadding: PaddingValues = LibraryDefaults.ContentPadding, + itemSpacing: Dp = LibraryDefaults.LibraryItemSpacing, header: (LazyListScope.() -> Unit)? = null, onLibraryClick: ((Library) -> Unit)? = null, ) { LibrariesContainer( { Libs.Builder().withJson(aboutLibsJson).build() }, - modifier, - lazyListState, - contentPadding, - showAuthor, - showVersion, - showLicenseBadges, - colors, - padding, - itemContentPadding, - header, - onLibraryClick + modifier = modifier, + lazyListState = lazyListState, + contentPadding = contentPadding, + showAuthor = showAuthor, + showVersion = showVersion, + showLicenseBadges = showLicenseBadges, + colors = colors, + padding = padding, + itemContentPadding = itemContentPadding, + itemSpacing = itemSpacing, + header = header, + onLibraryClick = onLibraryClick ) } @@ -62,6 +65,7 @@ fun LibrariesContainer( colors: LibraryColors = LibraryDefaults.libraryColors(), padding: LibraryPadding = LibraryDefaults.libraryPadding(), itemContentPadding: PaddingValues = LibraryDefaults.ContentPadding, + itemSpacing: Dp = LibraryDefaults.LibraryItemSpacing, header: (LazyListScope.() -> Unit)? = null, onLibraryClick: ((Library) -> Unit)? = null, ) { @@ -75,17 +79,18 @@ fun LibrariesContainer( if (libs != null) { Libraries( libraries = libs, - modifier, - lazyListState, - contentPadding, - showAuthor, - showVersion, - showLicenseBadges, - colors, - padding, - itemContentPadding, - header, - onLibraryClick + modifier = modifier, + lazyListState = lazyListState, + contentPadding = contentPadding, + showAuthor = showAuthor, + showVersion = showVersion, + showLicenseBadges = showLicenseBadges, + colors = colors, + padding = padding, + itemContentPadding = itemContentPadding, + itemSpacing = itemSpacing, + header = header, + onLibraryClick = onLibraryClick ) } }