Add: Extended card onClick actions (and wire install)

This commit is contained in:
machiav3lli 2022-03-04 15:21:44 +01:00
parent 71603ff3c4
commit 0e61463954
5 changed files with 50 additions and 16 deletions

View File

@ -29,11 +29,19 @@ import com.looker.droidify.ui.compose.components.RepositoryItem
fun ProductsVerticalRecycler( fun ProductsVerticalRecycler(
productsList: List<Product>?, productsList: List<Product>?,
repositories: Map<Long, Repository>, repositories: Map<Long, Repository>,
onUserClick: (ProductItem) -> Unit = {} onUserClick: (ProductItem) -> Unit = {},
onFavouriteClick: (ProductItem) -> Unit = {},
onInstallClick: (ProductItem) -> Unit = {}
) { ) {
VerticalItemList(list = productsList) { VerticalItemList(list = productsList) {
it.item.let { item -> it.item.let { item ->
ProductsListItem(item, repositories[item.repositoryId], onUserClick) ProductsListItem(
item,
repositories[item.repositoryId],
onUserClick,
onFavouriteClick,
onInstallClick
)
} }
} }
} }

View File

@ -28,7 +28,9 @@ import com.looker.droidify.ui.compose.utils.NetworkImage
fun ProductsListItem( fun ProductsListItem(
item: ProductItem, item: ProductItem,
repo: Repository? = null, repo: Repository? = null,
onUserClick: (ProductItem) -> Unit = {} onUserClick: (ProductItem) -> Unit = {},
onFavouriteClick: (ProductItem) -> Unit = {},
onInstallClick: (ProductItem) -> Unit = {}
) { ) {
val imageData by remember(item, repo) { val imageData by remember(item, repo) {
mutableStateOf( mutableStateOf(
@ -45,7 +47,13 @@ fun ProductsListItem(
ExpandableCard( ExpandableCard(
modifier = Modifier.padding(horizontal = 8.dp, vertical = 8.dp), modifier = Modifier.padding(horizontal = 8.dp, vertical = 8.dp),
onClick = { onUserClick(item) }, onClick = { onUserClick(item) },
expandedContent = { ExpandedItemContent(item = item) } expandedContent = {
ExpandedItemContent(
item = item,
onFavourite = onFavouriteClick,
onInstallClicked = onInstallClick
)
}
) { ) {
Row( Row(
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),

View File

@ -57,10 +57,16 @@ class ExploreFragment : MainNavFragmentX() {
} }
) { ) {
Scaffold { _ -> Scaffold { _ ->
ProductsVerticalRecycler(it, repositories) { item -> ProductsVerticalRecycler(it, repositories,
AppSheetX(item.packageName) onUserClick = { item ->
.showNow(parentFragmentManager, "Product ${item.packageName}") AppSheetX(item.packageName)
} .showNow(parentFragmentManager, "Product ${item.packageName}")
},
onFavouriteClick = {},
onInstallClick = {
mainActivityX.syncConnection.binder?.installApps(listOf(it))
}
)
} }
} }
} }

View File

@ -56,10 +56,16 @@ class InstalledFragment : MainNavFragmentX() {
} }
) { ) {
Scaffold { _ -> Scaffold { _ ->
ProductsVerticalRecycler(it, repositories) { item -> ProductsVerticalRecycler(it, repositories,
AppSheetX(item.packageName) onUserClick = { item ->
.showNow(parentFragmentManager, "Product ${item.packageName}") AppSheetX(item.packageName)
} .showNow(parentFragmentManager, "Product ${item.packageName}")
},
onFavouriteClick = {},
onInstallClick = {
mainActivityX.syncConnection.binder?.installApps(listOf(it))
}
)
} }
} }
} }

View File

@ -56,10 +56,16 @@ class LatestFragment : MainNavFragmentX() {
} }
) { ) {
Scaffold { _ -> Scaffold { _ ->
ProductsVerticalRecycler(it, repositories) { item -> ProductsVerticalRecycler(it, repositories,
AppSheetX(item.packageName) onUserClick = { item ->
.showNow(parentFragmentManager, "Product ${item.packageName}") AppSheetX(item.packageName)
} .showNow(parentFragmentManager, "Product ${item.packageName}")
},
onFavouriteClick = {},
onInstallClick = {
mainActivityX.syncConnection.binder?.installApps(listOf(it))
}
)
} }
} }
} }