mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-06-28 07:16:01 +02:00
![arkon](/assets/img/avatar_default.png)
Also renaming the helper composables so it's a bit easier to find/replace everything in forks.
103 lines
3.2 KiB
Kotlin
103 lines
3.2 KiB
Kotlin
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.stringResource
|
|
|
|
@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 = stringResource(MR.strings.set_as_cover),
|
|
icon = Icons.Outlined.Photo,
|
|
onClick = { showSetCoverDialog = true },
|
|
)
|
|
ActionButton(
|
|
modifier = Modifier.weight(1f),
|
|
title = stringResource(MR.strings.action_share),
|
|
icon = Icons.Outlined.Share,
|
|
onClick = {
|
|
onShare()
|
|
onDismissRequest()
|
|
},
|
|
)
|
|
ActionButton(
|
|
modifier = Modifier.weight(1f),
|
|
title = stringResource(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(stringResource(MR.strings.confirm_set_image_as_cover))
|
|
},
|
|
confirmButton = {
|
|
TextButton(onClick = onConfirm) {
|
|
Text(stringResource(MR.strings.action_ok))
|
|
}
|
|
},
|
|
dismissButton = {
|
|
TextButton(onClick = onDismiss) {
|
|
Text(stringResource(MR.strings.action_cancel))
|
|
}
|
|
},
|
|
onDismissRequest = onDismiss,
|
|
)
|
|
}
|