Update AboutLibraries and use iOS compatible composables

This commit is contained in:
Syer10
2023-02-18 15:17:03 -05:00
parent 11bd97f631
commit df0a1012cc
6 changed files with 5 additions and 221 deletions

View File

@@ -59,7 +59,7 @@ multiplatformSettings = "1.0.0-alpha01"
# Utility
desugarJdkLibs = "2.0.2"
aboutLibraries = "10.5.2"
aboutLibraries = "10.6.0"
dateTime = "0.4.0"
immutableCollections = "0.3.5"
kds = "3.4.0"

View File

@@ -56,6 +56,7 @@ kotlin {
api(libs.dateTime)
api(libs.immutableCollections)
api(libs.aboutLibraries.core)
api(libs.aboutLibraries.ui)
api(projects.core)
api(projects.i18n)
@@ -81,7 +82,7 @@ kotlin {
dependsOn(commonMain)
dependencies {
api(kotlin("stdlib-jdk8"))
api(libs.aboutLibraries.ui)
api(compose.desktop.currentOs)
}
}

View File

@@ -6,22 +6,13 @@
package ca.gosyer.jui.ui.main.about.licenses.components
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.produceState
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import ca.gosyer.jui.core.lang.withIOContext
import com.mikepenz.aboutlibraries.Libs
import com.mikepenz.aboutlibraries.entity.Library
import com.mikepenz.aboutlibraries.ui.compose.Libraries
import com.mikepenz.aboutlibraries.ui.compose.LibraryColors
import com.mikepenz.aboutlibraries.ui.compose.LibraryDefaults
import com.mikepenz.aboutlibraries.util.withContext
import kotlinx.collections.immutable.ImmutableList
@Composable
actual fun getLicenses(): Libs? {
@@ -36,43 +27,3 @@ actual fun getLicenses(): Libs? {
}
return libs
}
actual val LibraryDefaultsContentPadding
get() = LibraryDefaults.ContentPadding
@Composable
actual fun RealLibraryDefaultsLibraryColors(
backgroundColor: Color,
contentColor: Color,
badgeBackgroundColor: Color,
badgeContentColor: Color
) = LibraryDefaults.libraryColors(backgroundColor, contentColor, badgeBackgroundColor, badgeContentColor)
actual typealias LibraryColors = LibraryColors
@Composable
actual fun InternalAboutLibraries(
libraries: ImmutableList<Library>,
modifier: Modifier,
lazyListState: LazyListState,
contentPadding: PaddingValues,
showAuthor: Boolean,
showVersion: Boolean,
showLicenseBadges: Boolean,
colors: LibraryColors,
itemContentPadding: PaddingValues,
onLibraryClick: ((Library) -> Unit)?
) {
Libraries(
libraries = libraries,
modifier = modifier,
lazyListState = lazyListState,
contentPadding = contentPadding,
showAuthor = showAuthor,
showVersion = showVersion,
showLicenseBadges = showLicenseBadges,
colors = colors,
itemContentPadding = itemContentPadding,
onLibraryClick = onLibraryClick
)
}

View File

@@ -7,7 +7,6 @@
package ca.gosyer.jui.ui.main.about.licenses.components
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.WindowInsetsSides
import androidx.compose.foundation.layout.add
@@ -17,18 +16,13 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.only
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.windowInsetsPadding
import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Scaffold
import androidx.compose.material.contentColorFor
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalUriHandler
import androidx.compose.ui.unit.dp
import ca.gosyer.jui.i18n.MR
import ca.gosyer.jui.ui.base.navigation.Toolbar
import ca.gosyer.jui.ui.main.components.bottomNav
@@ -40,79 +34,12 @@ import ca.gosyer.jui.uicore.insets.navigationBars
import ca.gosyer.jui.uicore.insets.statusBars
import ca.gosyer.jui.uicore.resources.stringResource
import com.mikepenz.aboutlibraries.Libs
import com.mikepenz.aboutlibraries.entity.Library
import kotlinx.collections.immutable.ImmutableList
import com.mikepenz.aboutlibraries.ui.compose.Libraries
import kotlinx.collections.immutable.toImmutableList
@Composable
expect fun getLicenses(): Libs?
@Composable
internal expect fun InternalAboutLibraries(
libraries: ImmutableList<Library>,
modifier: Modifier,
lazyListState: LazyListState,
contentPadding: PaddingValues,
showAuthor: Boolean,
showVersion: Boolean,
showLicenseBadges: Boolean,
colors: LibraryColors,
itemContentPadding: PaddingValues,
onLibraryClick: ((Library) -> Unit)?
)
expect val LibraryDefaultsContentPadding: PaddingValues
@Composable
fun LibraryDefaultsLibraryColors(
backgroundColor: Color = MaterialTheme.colors.background,
contentColor: Color = contentColorFor(backgroundColor),
badgeBackgroundColor: Color = MaterialTheme.colors.primary,
badgeContentColor: Color = contentColorFor(badgeBackgroundColor)
) = RealLibraryDefaultsLibraryColors(
backgroundColor = backgroundColor,
contentColor = contentColor,
badgeBackgroundColor = badgeBackgroundColor,
badgeContentColor = badgeContentColor
)
@Composable
internal expect fun RealLibraryDefaultsLibraryColors(
backgroundColor: Color,
contentColor: Color,
badgeBackgroundColor: Color,
badgeContentColor: Color
): LibraryColors
expect interface LibraryColors
@Composable
fun AboutLibraries(
libraries: ImmutableList<Library>,
modifier: Modifier = Modifier,
lazyListState: LazyListState = rememberLazyListState(),
contentPadding: PaddingValues = PaddingValues(0.dp),
showAuthor: Boolean = true,
showVersion: Boolean = true,
showLicenseBadges: Boolean = true,
colors: LibraryColors = LibraryDefaultsLibraryColors(),
itemContentPadding: PaddingValues = LibraryDefaultsContentPadding,
onLibraryClick: ((Library) -> Unit)? = null
) {
InternalAboutLibraries(
libraries = libraries,
modifier = modifier,
lazyListState = lazyListState,
contentPadding = contentPadding,
showAuthor = showAuthor,
showVersion = showVersion,
showLicenseBadges = showLicenseBadges,
colors = colors,
itemContentPadding = itemContentPadding,
onLibraryClick = onLibraryClick
)
}
@Composable
fun LicensesContent() {
Scaffold(
@@ -130,7 +57,7 @@ fun LicensesContent() {
if (libs != null) {
val state = rememberLazyListState()
val uriHandler = LocalUriHandler.current
AboutLibraries(
Libraries(
libraries = remember(libs) { libs.libraries.toImmutableList() },
lazyListState = state,
onLibraryClick = {

View File

@@ -6,21 +6,12 @@
package ca.gosyer.jui.ui.main.about.licenses.components
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.produceState
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import ca.gosyer.jui.core.lang.withIOContext
import ca.gosyer.jui.i18n.MR
import com.mikepenz.aboutlibraries.Libs
import com.mikepenz.aboutlibraries.entity.Library
import com.mikepenz.aboutlibraries.ui.compose.Libraries
import com.mikepenz.aboutlibraries.ui.compose.LibraryColors
import com.mikepenz.aboutlibraries.ui.compose.LibraryDefaults
import kotlinx.collections.immutable.ImmutableList
@Composable
actual fun getLicenses(): Libs? {
@@ -34,43 +25,3 @@ actual fun getLicenses(): Libs? {
}
return libs
}
actual val LibraryDefaultsContentPadding
get() = LibraryDefaults.ContentPadding
@Composable
actual fun RealLibraryDefaultsLibraryColors(
backgroundColor: Color,
contentColor: Color,
badgeBackgroundColor: Color,
badgeContentColor: Color
) = LibraryDefaults.libraryColors(backgroundColor, contentColor, badgeBackgroundColor, badgeContentColor)
actual typealias LibraryColors = LibraryColors
@Composable
actual fun InternalAboutLibraries(
libraries: ImmutableList<Library>,
modifier: Modifier,
lazyListState: LazyListState,
contentPadding: PaddingValues,
showAuthor: Boolean,
showVersion: Boolean,
showLicenseBadges: Boolean,
colors: LibraryColors,
itemContentPadding: PaddingValues,
onLibraryClick: ((Library) -> Unit)?
) {
Libraries(
libraries = libraries,
modifier = modifier,
lazyListState = lazyListState,
contentPadding = contentPadding,
showAuthor = showAuthor,
showVersion = showVersion,
showLicenseBadges = showLicenseBadges,
colors = colors,
itemContentPadding = itemContentPadding,
onLibraryClick = onLibraryClick
)
}

View File

@@ -6,18 +6,12 @@
package ca.gosyer.jui.ui.main.about.licenses.components
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.produceState
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import ca.gosyer.jui.core.lang.withIOContext
import ca.gosyer.jui.i18n.MR
import com.mikepenz.aboutlibraries.Libs
import com.mikepenz.aboutlibraries.entity.Library
import kotlinx.collections.immutable.ImmutableList
@Composable
actual fun getLicenses(): Libs? {
@@ -31,43 +25,3 @@ actual fun getLicenses(): Libs? {
}
return libs
}
actual val LibraryDefaultsContentPadding
get() = PaddingValues()
@Composable
actual fun RealLibraryDefaultsLibraryColors(
backgroundColor: Color,
contentColor: Color,
badgeBackgroundColor: Color,
badgeContentColor: Color
) = object : LibraryColors {}
actual interface LibraryColors
@Composable
actual fun InternalAboutLibraries(
libraries: ImmutableList<Library>,
modifier: Modifier,
lazyListState: LazyListState,
contentPadding: PaddingValues,
showAuthor: Boolean,
showVersion: Boolean,
showLicenseBadges: Boolean,
colors: LibraryColors,
itemContentPadding: PaddingValues,
onLibraryClick: ((Library) -> Unit)?
) {
/*Libraries(
libraries = libraries,
modifier = modifier,
lazyListState = lazyListState,
contentPadding = contentPadding,
showAuthor = showAuthor,
showVersion = showVersion,
showLicenseBadges = showLicenseBadges,
colors = colors,
itemContentPadding = itemContentPadding,
onLibraryClick = onLibraryClick
)*/
}