Ensure that list item contents always fill max width

This commit is contained in:
MM20 2022-06-12 14:50:43 +02:00
parent e318664b6e
commit 6312ca93ba
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389

View File

@ -2,29 +2,19 @@ package de.mm20.launcher2.ui.launcher.search.common.list
import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.material.DismissDirection
import androidx.compose.material.DismissValue
import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.rememberDismissState
import androidx.compose.material3.SnackbarResult
import androidx.compose.runtime.* import androidx.compose.runtime.*
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.geometry.Rect import androidx.compose.ui.geometry.Rect
import androidx.compose.ui.layout.boundsInWindow import androidx.compose.ui.layout.boundsInWindow
import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.layout.onGloballyPositioned
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.lifecycle.lifecycleScope
import de.mm20.launcher2.search.data.* import de.mm20.launcher2.search.data.*
import de.mm20.launcher2.ui.R
import de.mm20.launcher2.ui.component.InnerCard import de.mm20.launcher2.ui.component.InnerCard
import de.mm20.launcher2.ui.launcher.search.calendar.CalendarItem import de.mm20.launcher2.ui.launcher.search.calendar.CalendarItem
import de.mm20.launcher2.ui.launcher.search.contacts.ContactItem import de.mm20.launcher2.ui.launcher.search.contacts.ContactItem
import de.mm20.launcher2.ui.launcher.search.files.FileItem import de.mm20.launcher2.ui.launcher.search.files.FileItem
import de.mm20.launcher2.ui.launcher.search.shortcut.AppShortcutItem import de.mm20.launcher2.ui.launcher.search.shortcut.AppShortcutItem
import de.mm20.launcher2.ui.locals.LocalFavoritesEnabled
import de.mm20.launcher2.ui.locals.LocalSnackbarHostState
import kotlinx.coroutines.launch
@OptIn(ExperimentalMaterialApi::class, androidx.compose.foundation.ExperimentalFoundationApi::class) @OptIn(ExperimentalMaterialApi::class, androidx.compose.foundation.ExperimentalFoundationApi::class)
@Composable @Composable
@ -45,11 +35,13 @@ fun ListItem(modifier: Modifier = Modifier, item: Searchable) {
when (item) { when (item) {
is Contact -> { is Contact -> {
ContactItem( ContactItem(
modifier = Modifier.combinedClickable( modifier = Modifier
enabled = !showDetails, .fillMaxWidth()
onClick = { showDetails = true }, .combinedClickable(
onLongClick = { showDetails = true } enabled = !showDetails,
), onClick = { showDetails = true },
onLongClick = { showDetails = true }
),
contact = item, contact = item,
showDetails = showDetails, showDetails = showDetails,
onBack = { showDetails = false } onBack = { showDetails = false }
@ -57,7 +49,9 @@ fun ListItem(modifier: Modifier = Modifier, item: Searchable) {
} }
is File -> { is File -> {
FileItem( FileItem(
modifier = Modifier.combinedClickable( modifier = Modifier
.fillMaxWidth()
.combinedClickable(
enabled = !showDetails, enabled = !showDetails,
onClick = { onClick = {
if (!viewModel.launch(context, bounds)) { if (!viewModel.launch(context, bounds)) {
@ -73,7 +67,9 @@ fun ListItem(modifier: Modifier = Modifier, item: Searchable) {
} }
is CalendarEvent -> { is CalendarEvent -> {
CalendarItem( CalendarItem(
modifier = Modifier.combinedClickable( modifier = Modifier
.fillMaxWidth()
.combinedClickable(
enabled = !showDetails, enabled = !showDetails,
onClick = { showDetails = true }, onClick = { showDetails = true },
onLongClick = { showDetails = true } onLongClick = { showDetails = true }
@ -86,7 +82,9 @@ fun ListItem(modifier: Modifier = Modifier, item: Searchable) {
is AppShortcut -> { is AppShortcut -> {
AppShortcutItem( AppShortcutItem(
shortcut = item, shortcut = item,
modifier = Modifier.combinedClickable( modifier = Modifier
.fillMaxWidth()
.combinedClickable(
enabled = !showDetails, enabled = !showDetails,
onClick = { onClick = {
if (!viewModel.launch(context, bounds)) { if (!viewModel.launch(context, bounds)) {