Ensure that list item contents always fill max width
This commit is contained in:
parent
e318664b6e
commit
6312ca93ba
@ -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)) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user