Long click on android to access context menu

This commit is contained in:
Syer10
2022-02-28 18:13:24 -05:00
parent b155595154
commit 1c2f19099d
2 changed files with 78 additions and 8 deletions

View File

@@ -6,12 +6,46 @@
package ca.gosyer.ui.library.components
import androidx.compose.foundation.clickable
import androidx.compose.foundation.combinedClickable
import androidx.compose.material.DropdownMenu
import androidx.compose.material.DropdownMenuItem
import androidx.compose.material.Text
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.composed
import ca.gosyer.i18n.MR
import ca.gosyer.uicore.resources.stringResource
actual fun Modifier.libraryMangaModifier(
onClickManga: () -> Unit,
onClickRemoveManga: () -> Unit
): Modifier = Modifier.clickable(
onClick = { onClickManga() }
)
): Modifier = composed {
var expanded by remember { mutableStateOf(false) }
DropdownMenu(
expanded,
onDismissRequest = { expanded = false }
) {
listOf(
stringResource(MR.strings.action_remove_favorite) to onClickRemoveManga
).forEach { (label, onClick) ->
DropdownMenuItem(
onClick = {
expanded = false
onClick()
}
) {
Text(text = label)
}
}
}
Modifier.combinedClickable(
onClick = { onClickManga() },
onLongClick = {
expanded = true
}
)
}

View File

@@ -6,14 +6,50 @@
package ca.gosyer.ui.manga.components
import androidx.compose.foundation.clickable
import androidx.compose.foundation.combinedClickable
import androidx.compose.material.DropdownMenu
import androidx.compose.material.DropdownMenuItem
import androidx.compose.material.Text
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.composed
import ca.gosyer.i18n.MR
import ca.gosyer.uicore.resources.stringResource
actual fun Modifier.chapterItemModifier(
onClick: () -> Unit,
toggleRead: () -> Unit,
toggleBookmarked: () -> Unit,
markPreviousAsRead: () -> Unit
): Modifier = Modifier.clickable(
onClick = { onClick() }
)
): Modifier = composed {
var expanded by remember { mutableStateOf(false) }
DropdownMenu(
expanded,
onDismissRequest = { expanded = false }
) {
listOf(
stringResource(MR.strings.action_toggle_read) to toggleRead ,
stringResource(MR.strings.action_mark_previous_read) to markPreviousAsRead ,
stringResource(MR.strings.action_toggle_bookmarked) to toggleBookmarked
).forEach { (label, onClick) ->
DropdownMenuItem(
onClick = {
expanded = false
onClick()
}
) {
Text(text = label)
}
}
}
Modifier.combinedClickable(
onClick = { onClick() },
onLongClick = {
expanded = true
}
)
}