|
@@ -0,0 +1,102 @@
|
|
|
+package eu.kanade.tachiyomi.ui.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.res.stringResource
|
|
|
+import androidx.compose.ui.unit.dp
|
|
|
+import eu.kanade.presentation.components.AdaptiveSheet
|
|
|
+import eu.kanade.tachiyomi.R
|
|
|
+import tachiyomi.presentation.core.components.ActionButton
|
|
|
+import tachiyomi.presentation.core.components.material.padding
|
|
|
+
|
|
|
+@Composable
|
|
|
+fun ReaderPageDialog(
|
|
|
+ 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(R.string.set_as_cover),
|
|
|
+ icon = Icons.Outlined.Photo,
|
|
|
+ onClick = { showSetCoverDialog = true },
|
|
|
+ )
|
|
|
+ ActionButton(
|
|
|
+ modifier = Modifier.weight(1f),
|
|
|
+ title = stringResource(R.string.action_share),
|
|
|
+ icon = Icons.Outlined.Share,
|
|
|
+ onClick = {
|
|
|
+ onShare()
|
|
|
+ onDismissRequest()
|
|
|
+ },
|
|
|
+ )
|
|
|
+ ActionButton(
|
|
|
+ modifier = Modifier.weight(1f),
|
|
|
+ title = stringResource(R.string.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(R.string.confirm_set_image_as_cover))
|
|
|
+ },
|
|
|
+ confirmButton = {
|
|
|
+ TextButton(onClick = onConfirm) {
|
|
|
+ Text(stringResource(android.R.string.ok))
|
|
|
+ }
|
|
|
+ },
|
|
|
+ dismissButton = {
|
|
|
+ TextButton(onClick = onDismiss) {
|
|
|
+ Text(stringResource(R.string.action_cancel))
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onDismissRequest = onDismiss,
|
|
|
+ )
|
|
|
+}
|