123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- package eu.kanade.presentation.reader
- import androidx.compose.foundation.layout.Arrangement
- import androidx.compose.foundation.layout.Row
- import androidx.compose.foundation.layout.padding
- import androidx.compose.material.icons.Icons
- import androidx.compose.material.icons.outlined.Photo
- import androidx.compose.material.icons.outlined.Save
- import androidx.compose.material.icons.outlined.Share
- import androidx.compose.material3.AlertDialog
- import androidx.compose.material3.MaterialTheme
- import androidx.compose.material3.Text
- import androidx.compose.material3.TextButton
- import androidx.compose.runtime.Composable
- 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.unit.dp
- import eu.kanade.presentation.components.AdaptiveSheet
- import tachiyomi.i18n.MR
- import tachiyomi.presentation.core.components.ActionButton
- import tachiyomi.presentation.core.components.material.padding
- import tachiyomi.presentation.core.i18n.localize
- @Composable
- fun ReaderPageActionsDialog(
- onDismissRequest: () -> Unit,
- onSetAsCover: () -> Unit,
- onShare: () -> Unit,
- onSave: () -> Unit,
- ) {
- var showSetCoverDialog by remember { mutableStateOf(false) }
- AdaptiveSheet(
- onDismissRequest = onDismissRequest,
- ) {
- Row(
- modifier = Modifier.padding(vertical = 16.dp),
- horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),
- ) {
- ActionButton(
- modifier = Modifier.weight(1f),
- title = localize(MR.strings.set_as_cover),
- icon = Icons.Outlined.Photo,
- onClick = { showSetCoverDialog = true },
- )
- ActionButton(
- modifier = Modifier.weight(1f),
- title = localize(MR.strings.action_share),
- icon = Icons.Outlined.Share,
- onClick = {
- onShare()
- onDismissRequest()
- },
- )
- ActionButton(
- modifier = Modifier.weight(1f),
- title = localize(MR.strings.action_save),
- icon = Icons.Outlined.Save,
- onClick = {
- onSave()
- onDismissRequest()
- },
- )
- }
- }
- if (showSetCoverDialog) {
- SetCoverDialog(
- onConfirm = {
- onSetAsCover()
- showSetCoverDialog = false
- },
- onDismiss = { showSetCoverDialog = false },
- )
- }
- }
- @Composable
- private fun SetCoverDialog(
- onConfirm: () -> Unit,
- onDismiss: () -> Unit,
- ) {
- AlertDialog(
- text = {
- Text(localize(MR.strings.confirm_set_image_as_cover))
- },
- confirmButton = {
- TextButton(onClick = onConfirm) {
- Text(localize(MR.strings.action_ok))
- }
- },
- dismissButton = {
- TextButton(onClick = onDismiss) {
- Text(localize(MR.strings.action_cancel))
- }
- },
- onDismissRequest = onDismiss,
- )
- }
|