diff --git a/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/favorites/FavoritesWidget.kt b/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/favorites/FavoritesWidget.kt index 3d5dde67..af624617 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/favorites/FavoritesWidget.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/favorites/FavoritesWidget.kt @@ -1,17 +1,71 @@ package de.mm20.launcher2.ui.launcher.widgets.favorites -import androidx.compose.runtime.Composable -import androidx.compose.runtime.collectAsState -import androidx.compose.runtime.getValue -import androidx.compose.runtime.livedata.observeAsState -import androidx.compose.runtime.remember +import androidx.compose.foundation.horizontalScroll +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.rememberScrollState +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.Edit +import androidx.compose.material.icons.rounded.Star +import androidx.compose.material3.* +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel +import de.mm20.launcher2.ui.R +import de.mm20.launcher2.ui.launcher.modals.EditFavoritesSheet import de.mm20.launcher2.ui.launcher.search.common.grid.SearchResultGrid @Composable fun FavoritesWidget() { val viewModel: FavoritesWidgetVM = viewModel() val favorites by remember { viewModel.favorites }.collectAsState(emptyList()) + var showEditFavoritesDialog by remember { mutableStateOf(false) } - SearchResultGrid(favorites) + Column { + SearchResultGrid(favorites) + Row( + modifier = Modifier + .fillMaxWidth() + .padding( + top = 4.dp, + bottom = 8.dp, + end = 8.dp + ), + horizontalArrangement = Arrangement.End, + verticalAlignment = Alignment.CenterVertically, + ) { + Row( + modifier = Modifier + .weight(1f) + .horizontalScroll(rememberScrollState()), + ) { + FilterChip( + modifier = Modifier.padding(start = 16.dp), + selected = true, + onClick = { /*TODO*/ }, + leadingIcon = { + Icon( + imageVector = Icons.Rounded.Star, + contentDescription = null + ) + }, + label = { Text(stringResource(R.string.favorites)) } + ) + } + SmallFloatingActionButton( + elevation = FloatingActionButtonDefaults.bottomAppBarFabElevation(), + onClick = { showEditFavoritesDialog = true } + ) { + Icon(imageVector = Icons.Rounded.Edit, contentDescription = null) + } + } + } + + if (showEditFavoritesDialog) { + EditFavoritesSheet( + onDismiss = { showEditFavoritesDialog = false } + ) + } } \ No newline at end of file