691efe0831
(cherry picked from commit 982ebcf777215c90584ad28fae79e9ca8a22a951) # Conflicts: # CHANGELOG.md # app/src/main/java/eu/kanade/presentation/manga/components/MangaBottomActionMenu.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt
74 lines
2.4 KiB
Kotlin
74 lines
2.4 KiB
Kotlin
package eu.kanade.presentation.components
|
|
|
|
import androidx.compose.foundation.layout.ColumnScope
|
|
import androidx.compose.material3.DropdownMenuItem
|
|
import androidx.compose.material3.Text
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.compose.ui.unit.DpOffset
|
|
import eu.kanade.presentation.manga.DownloadAction
|
|
import kotlinx.collections.immutable.persistentListOf
|
|
import tachiyomi.i18n.MR
|
|
import tachiyomi.presentation.core.i18n.pluralStringResource
|
|
import tachiyomi.presentation.core.i18n.stringResource
|
|
|
|
@Composable
|
|
fun DownloadDropdownMenu(
|
|
expanded: Boolean,
|
|
onDismissRequest: () -> Unit,
|
|
onDownloadClicked: (DownloadAction) -> Unit,
|
|
offset: DpOffset? = null,
|
|
modifier: Modifier = Modifier,
|
|
) {
|
|
if (offset != null) {
|
|
DropdownMenu(
|
|
expanded = expanded,
|
|
onDismissRequest = onDismissRequest,
|
|
modifier = modifier,
|
|
offset = offset,
|
|
content = {
|
|
DownloadDropdownMenuItems(
|
|
onDismissRequest = onDismissRequest,
|
|
onDownloadClicked = onDownloadClicked,
|
|
)
|
|
},
|
|
)
|
|
} else {
|
|
DropdownMenu(
|
|
expanded = expanded,
|
|
onDismissRequest = onDismissRequest,
|
|
modifier = modifier,
|
|
content = {
|
|
DownloadDropdownMenuItems(
|
|
onDismissRequest = onDismissRequest,
|
|
onDownloadClicked = onDownloadClicked,
|
|
)
|
|
},
|
|
)
|
|
}
|
|
}
|
|
|
|
@Composable
|
|
private fun ColumnScope.DownloadDropdownMenuItems(
|
|
onDismissRequest: () -> Unit,
|
|
onDownloadClicked: (DownloadAction) -> Unit,
|
|
) {
|
|
val options = persistentListOf(
|
|
DownloadAction.NEXT_1_CHAPTER to pluralStringResource(MR.plurals.download_amount, 1, 1),
|
|
DownloadAction.NEXT_5_CHAPTERS to pluralStringResource(MR.plurals.download_amount, 5, 5),
|
|
DownloadAction.NEXT_10_CHAPTERS to pluralStringResource(MR.plurals.download_amount, 10, 10),
|
|
DownloadAction.NEXT_25_CHAPTERS to pluralStringResource(MR.plurals.download_amount, 25, 25),
|
|
DownloadAction.UNREAD_CHAPTERS to stringResource(MR.strings.download_unread),
|
|
)
|
|
|
|
options.map { (downloadAction, string) ->
|
|
DropdownMenuItem(
|
|
text = { Text(text = string) },
|
|
onClick = {
|
|
onDownloadClicked(downloadAction)
|
|
onDismissRequest()
|
|
},
|
|
)
|
|
}
|
|
}
|