Skip to content

Commit

Permalink
Merge branch 'develop' into remove-immutable-collections
Browse files Browse the repository at this point in the history
// Conflicts:
//	app/src/main/kotlin/app/lawnchair/lawnicons/ui/destination/Contributors.kt
//	app/src/main/kotlin/app/lawnchair/lawnicons/ui/destination/Home.kt
  • Loading branch information
Goooler committed Sep 6, 2024
2 parents 99a6a8e + f401a40 commit ca4b093
Show file tree
Hide file tree
Showing 7 changed files with 217 additions and 143 deletions.
79 changes: 36 additions & 43 deletions app/src/main/kotlin/app/lawnchair/lawnicons/ui/Lawnicons.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,18 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalLayoutDirection
import androidx.compose.ui.unit.LayoutDirection
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
import androidx.navigation.toRoute
import app.lawnchair.lawnicons.model.IconInfo
import app.lawnchair.lawnicons.ui.destination.About
import app.lawnchair.lawnicons.ui.destination.Acknowledgement
import app.lawnchair.lawnicons.ui.destination.Acknowledgements
import app.lawnchair.lawnicons.ui.destination.Contributors
import app.lawnchair.lawnicons.ui.destination.Home
import app.lawnchair.lawnicons.ui.util.About
import app.lawnchair.lawnicons.ui.util.Acknowledgement
import app.lawnchair.lawnicons.ui.util.Acknowledgements
import app.lawnchair.lawnicons.ui.util.Contributors
import app.lawnchair.lawnicons.ui.util.Home
import app.lawnchair.lawnicons.ui.destination.aboutDestination
import app.lawnchair.lawnicons.ui.destination.acknowledgementDestination
import app.lawnchair.lawnicons.ui.destination.acknowledgementsDestination
import app.lawnchair.lawnicons.ui.destination.contributorsDestination
import app.lawnchair.lawnicons.ui.destination.homeDestination
import soup.compose.material.motion.animation.materialSharedAxisXIn
import soup.compose.material.motion.animation.materialSharedAxisXOut
import soup.compose.material.motion.animation.rememberSlideDistance
Expand Down Expand Up @@ -50,42 +48,37 @@ fun Lawnicons(
popEnterTransition = { materialSharedAxisXIn(isRtl, slideDistance) },
popExitTransition = { materialSharedAxisXOut(isRtl, slideDistance) },
) {
composable<Home> {
Home(
onNavigate = { navController.navigate(About) },
isExpandedScreen = isExpandedScreen,
isIconPicker = isIconPicker,
onSendResult = onSendResult,
)
}
composable<Acknowledgements> {
Acknowledgements(
onBack = navController::popBackStack,
onNavigate = {
navController.navigate(Acknowledgement(it))
},
isExpandedScreen = isExpandedScreen,
)
}
composable<Acknowledgement> { backStackEntry ->
val acknowledgement: Acknowledgement = backStackEntry.toRoute()
Acknowledgement(
name = acknowledgement.id,
onBack = navController::popBackStack,
isExpandedScreen = isExpandedScreen,
)
}
composable<About> {
About(
onBack = navController::popBackStack,
onNavigateToContributors = { navController.navigate(Contributors) },
onNavigateToAcknowledgements = { navController.navigate(Acknowledgements) },
isExpandedScreen = isExpandedScreen,
)
}
composable<Contributors> {
Contributors(onBack = navController::popBackStack, isExpandedScreen = isExpandedScreen)
}
homeDestination(
onNavigate = { navController.navigate(About) },
isExpandedScreen = isExpandedScreen,
isIconPicker = isIconPicker,
onSendResult = onSendResult,
)
acknowledgementsDestination(
onBack = navController::popBackStack,
onNavigate = {
navController.navigate(Acknowledgement(it))
},
isExpandedScreen = isExpandedScreen,
)
acknowledgementDestination(
onBack = navController::popBackStack,
isExpandedScreen = isExpandedScreen,
)
aboutDestination(
onBack = navController::popBackStack,
onNavigateToContributors = {
navController.navigate(Contributors)
},
onNavigateToAcknowledgements = {
navController.navigate(Acknowledgements)
},
isExpandedScreen = isExpandedScreen,
)
contributorsDestination(
onBack = navController::popBackStack,
isExpandedScreen = isExpandedScreen,
)
}
}
}
166 changes: 94 additions & 72 deletions app/src/main/kotlin/app/lawnchair/lawnicons/ui/destination/About.kt
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ import androidx.compose.ui.platform.LocalInspectionMode
import androidx.compose.ui.platform.LocalLayoutDirection
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.navigation.NavGraphBuilder
import androidx.navigation.compose.composable
import app.lawnchair.lawnicons.BuildConfig
import app.lawnchair.lawnicons.R
import app.lawnchair.lawnicons.ui.components.ContributorRow
Expand All @@ -38,82 +40,29 @@ import app.lawnchair.lawnicons.ui.util.Contributor
import app.lawnchair.lawnicons.ui.util.ExternalLink
import app.lawnchair.lawnicons.ui.util.PreviewLawnicons
import app.lawnchair.lawnicons.util.appIcon
import kotlinx.serialization.Serializable

private val externalLinks = listOf(
ExternalLink(
iconResId = R.drawable.github_foreground,
name = R.string.github,
url = Constants.GITHUB,
),
ExternalLink(
iconResId = R.drawable.icon_request_app,
name = R.string.request_form,
url = Constants.ICON_REQUEST_FORM,
),
)
@Serializable
data object About

private val coreContributors = listOf(
Contributor(
name = "Suphon T.",
username = "paphonb",
photoUrl = "https://avatars.githubusercontent.com/u/8080853",
socialUrl = "https://x.com/paphonb",
descriptionRes = R.string.contribution_core,
),
Contributor(
name = "SuperDragonXD",
username = "SuperDragonXD",
photoUrl = "https://avatars.githubusercontent.com/u/70206496",
socialUrl = "https://github.com/SuperDragonXD",
descriptionRes = R.string.contribution_core,
),
Contributor(
name = "Patryk Radziszewski",
username = "Chefski",
photoUrl = "https://avatars.githubusercontent.com/u/100310118",
socialUrl = "https://github.com/Chefski",
descriptionRes = R.string.contribution_icons,
),
Contributor(
name = "Gleb",
username = "x9136",
photoUrl = "https://avatars.githubusercontent.com/u/60105060",
socialUrl = "https://github.com/x9136",
descriptionRes = R.string.contribution_icons,
),
Contributor(
name = "Grabster",
username = "Grabstertv",
photoUrl = "https://avatars.githubusercontent.com/u/49114212",
socialUrl = "https://x.com/grabstertv",
descriptionRes = R.string.contribution_icons,
),
Contributor(
name = "Zongle Wang",
username = "Goooler",
photoUrl = "https://avatars.githubusercontent.com/u/10363352",
socialUrl = "https://androiddev.social/@Goooler",
descriptionRes = R.string.contribution_infra,
),
)

private val specialThanks = listOf(
Contributor(
name = "Eatos",
photoUrl = "https://avatars.githubusercontent.com/u/52837599",
socialUrl = "https://x.com/eatosapps",
descriptionRes = R.string.special_thanks_icon,
),
Contributor(
name = "Rik Koedoot",
photoUrl = "https://avatars.githubusercontent.com/u/29402532",
username = "rikkoedoot",
descriptionRes = R.string.special_thanks_name,
),
)
fun NavGraphBuilder.aboutDestination(
onBack: () -> Unit,
onNavigateToContributors: () -> Unit,
onNavigateToAcknowledgements: () -> Unit,
isExpandedScreen: Boolean,
) {
composable<About> {
About(
onBack = onBack,
onNavigateToContributors = onNavigateToContributors,
onNavigateToAcknowledgements = onNavigateToAcknowledgements,
isExpandedScreen = isExpandedScreen,
)
}
}

@Composable
fun About(
private fun About(
onBack: () -> Unit,
onNavigateToContributors: () -> Unit,
onNavigateToAcknowledgements: () -> Unit,
Expand Down Expand Up @@ -238,6 +187,79 @@ fun About(
}
}

private val externalLinks = listOf(
ExternalLink(
iconResId = R.drawable.github_foreground,
name = R.string.github,
url = Constants.GITHUB,
),
ExternalLink(
iconResId = R.drawable.icon_request_app,
name = R.string.request_form,
url = Constants.ICON_REQUEST_FORM,
),
)

private val coreContributors = listOf(
Contributor(
name = "Suphon T.",
username = "paphonb",
photoUrl = "https://avatars.githubusercontent.com/u/8080853",
socialUrl = "https://x.com/paphonb",
descriptionRes = R.string.contribution_core,
),
Contributor(
name = "SuperDragonXD",
username = "SuperDragonXD",
photoUrl = "https://avatars.githubusercontent.com/u/70206496",
socialUrl = "https://github.com/SuperDragonXD",
descriptionRes = R.string.contribution_core,
),
Contributor(
name = "Patryk Radziszewski",
username = "Chefski",
photoUrl = "https://avatars.githubusercontent.com/u/100310118",
socialUrl = "https://github.com/Chefski",
descriptionRes = R.string.contribution_icons,
),
Contributor(
name = "Gleb",
username = "x9136",
photoUrl = "https://avatars.githubusercontent.com/u/60105060",
socialUrl = "https://github.com/x9136",
descriptionRes = R.string.contribution_icons,
),
Contributor(
name = "Grabster",
username = "Grabstertv",
photoUrl = "https://avatars.githubusercontent.com/u/49114212",
socialUrl = "https://x.com/grabstertv",
descriptionRes = R.string.contribution_icons,
),
Contributor(
name = "Zongle Wang",
username = "Goooler",
photoUrl = "https://avatars.githubusercontent.com/u/10363352",
socialUrl = "https://androiddev.social/@Goooler",
descriptionRes = R.string.contribution_infra,
),
)

private val specialThanks = listOf(
Contributor(
name = "Eatos",
photoUrl = "https://avatars.githubusercontent.com/u/52837599",
socialUrl = "https://x.com/eatosapps",
descriptionRes = R.string.special_thanks_icon,
),
Contributor(
name = "Rik Koedoot",
photoUrl = "https://avatars.githubusercontent.com/u/29402532",
username = "rikkoedoot",
descriptionRes = R.string.special_thanks_name,
),
)

@PreviewLawnicons
@Composable
private fun AboutPreview() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,22 +28,40 @@ import androidx.compose.ui.text.style.TextDecoration
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation.NavGraphBuilder
import androidx.navigation.compose.composable
import androidx.navigation.toRoute
import app.lawnchair.lawnicons.ui.components.core.LawniconsScaffold
import app.lawnchair.lawnicons.ui.components.core.placeholder.PlaceholderHighlight
import app.lawnchair.lawnicons.ui.components.core.placeholder.fade
import app.lawnchair.lawnicons.ui.components.core.placeholder.placeholder
import app.lawnchair.lawnicons.viewmodel.AcknowledgementViewModel
import kotlinx.serialization.Serializable

@Serializable
data class Acknowledgement(val id: String)

fun NavGraphBuilder.acknowledgementDestination(
isExpandedScreen: Boolean,
onBack: () -> Unit,
) {
composable<Acknowledgement> { backStackEntry ->
Acknowledgement(
name = backStackEntry.toRoute<Acknowledgement>().id,
onBack = onBack,
isExpandedScreen = isExpandedScreen,
)
}
}

@Composable
fun Acknowledgement(
name: String?,
private fun Acknowledgement(
name: String,
onBack: () -> Unit,
isExpandedScreen: Boolean,
modifier: Modifier = Modifier,
acknowledgementViewModel: AcknowledgementViewModel = hiltViewModel(),
) {
requireNotNull(name)

val notice by acknowledgementViewModel.getNoticeForOssLibrary(
ossLibraryName = name,
linkStyle = SpanStyle(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,33 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation.NavGraphBuilder
import androidx.navigation.compose.composable
import app.lawnchair.lawnicons.R
import app.lawnchair.lawnicons.ui.components.core.LawniconsScaffold
import app.lawnchair.lawnicons.ui.components.core.SimpleListRow
import app.lawnchair.lawnicons.viewmodel.AcknowledgementViewModel
import kotlinx.serialization.Serializable

@Serializable
data object Acknowledgements

fun NavGraphBuilder.acknowledgementsDestination(
isExpandedScreen: Boolean,
onBack: () -> Unit,
onNavigate: (String) -> Unit,
) {
composable<Acknowledgements> {
Acknowledgements(
onBack = onBack,
onNavigate = onNavigate,
isExpandedScreen = isExpandedScreen,
)
}
}

@Composable
fun Acknowledgements(
private fun Acknowledgements(
onBack: () -> Unit,
onNavigate: (String) -> Unit,
isExpandedScreen: Boolean,
Expand Down
Loading

0 comments on commit ca4b093

Please sign in to comment.