|
@@ -3,6 +3,7 @@ package eu.kanade.presentation.manga
|
|
|
import androidx.compose.foundation.clickable
|
|
|
import androidx.compose.foundation.layout.Arrangement
|
|
|
import androidx.compose.foundation.layout.Column
|
|
|
+import androidx.compose.foundation.layout.ColumnScope
|
|
|
import androidx.compose.foundation.layout.Row
|
|
|
import androidx.compose.foundation.layout.fillMaxWidth
|
|
|
import androidx.compose.foundation.layout.padding
|
|
@@ -104,6 +105,68 @@ fun ChapterSettingsDialog(
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+@Composable
|
|
|
+private fun ColumnScope.FilterPage(
|
|
|
+ downloadFilter: TriStateFilter,
|
|
|
+ onDownloadFilterChanged: ((TriStateFilter) -> Unit)?,
|
|
|
+ unreadFilter: TriStateFilter,
|
|
|
+ onUnreadFilterChanged: (TriStateFilter) -> Unit,
|
|
|
+ bookmarkedFilter: TriStateFilter,
|
|
|
+ onBookmarkedFilterChanged: (TriStateFilter) -> Unit,
|
|
|
+) {
|
|
|
+ TriStateItem(
|
|
|
+ label = stringResource(R.string.label_downloaded),
|
|
|
+ state = downloadFilter,
|
|
|
+ onClick = onDownloadFilterChanged,
|
|
|
+ )
|
|
|
+ TriStateItem(
|
|
|
+ label = stringResource(R.string.action_filter_unread),
|
|
|
+ state = unreadFilter,
|
|
|
+ onClick = onUnreadFilterChanged,
|
|
|
+ )
|
|
|
+ TriStateItem(
|
|
|
+ label = stringResource(R.string.action_filter_bookmarked),
|
|
|
+ state = bookmarkedFilter,
|
|
|
+ onClick = onBookmarkedFilterChanged,
|
|
|
+ )
|
|
|
+}
|
|
|
+
|
|
|
+@Composable
|
|
|
+private fun ColumnScope.SortPage(
|
|
|
+ sortingMode: Long,
|
|
|
+ sortDescending: Boolean,
|
|
|
+ onItemSelected: (Long) -> Unit,
|
|
|
+) {
|
|
|
+ listOf(
|
|
|
+ R.string.sort_by_source to Manga.CHAPTER_SORTING_SOURCE,
|
|
|
+ R.string.sort_by_number to Manga.CHAPTER_SORTING_NUMBER,
|
|
|
+ R.string.sort_by_upload_date to Manga.CHAPTER_SORTING_UPLOAD_DATE,
|
|
|
+ ).map { (titleRes, mode) ->
|
|
|
+ SortItem(
|
|
|
+ label = stringResource(titleRes),
|
|
|
+ sortDescending = sortDescending.takeIf { sortingMode == mode },
|
|
|
+ onClick = { onItemSelected(mode) },
|
|
|
+ )
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+@Composable
|
|
|
+private fun ColumnScope.DisplayPage(
|
|
|
+ displayMode: Long,
|
|
|
+ onItemSelected: (Long) -> Unit,
|
|
|
+) {
|
|
|
+ listOf(
|
|
|
+ R.string.show_title to Manga.CHAPTER_DISPLAY_NAME,
|
|
|
+ R.string.show_chapter_number to Manga.CHAPTER_DISPLAY_NUMBER,
|
|
|
+ ).map { (titleRes, mode) ->
|
|
|
+ RadioItem(
|
|
|
+ label = stringResource(titleRes),
|
|
|
+ selected = displayMode == mode,
|
|
|
+ onClick = { onItemSelected(mode) },
|
|
|
+ )
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
@Composable
|
|
|
private fun SetAsDefaultDialog(
|
|
|
onDismissRequest: () -> Unit,
|
|
@@ -152,69 +215,3 @@ private fun SetAsDefaultDialog(
|
|
|
},
|
|
|
)
|
|
|
}
|
|
|
-
|
|
|
-@Composable
|
|
|
-private fun FilterPage(
|
|
|
- downloadFilter: TriStateFilter,
|
|
|
- onDownloadFilterChanged: ((TriStateFilter) -> Unit)?,
|
|
|
- unreadFilter: TriStateFilter,
|
|
|
- onUnreadFilterChanged: (TriStateFilter) -> Unit,
|
|
|
- bookmarkedFilter: TriStateFilter,
|
|
|
- onBookmarkedFilterChanged: (TriStateFilter) -> Unit,
|
|
|
-) {
|
|
|
- TriStateItem(
|
|
|
- label = stringResource(R.string.label_downloaded),
|
|
|
- state = downloadFilter,
|
|
|
- onClick = onDownloadFilterChanged,
|
|
|
- )
|
|
|
- TriStateItem(
|
|
|
- label = stringResource(R.string.action_filter_unread),
|
|
|
- state = unreadFilter,
|
|
|
- onClick = onUnreadFilterChanged,
|
|
|
- )
|
|
|
- TriStateItem(
|
|
|
- label = stringResource(R.string.action_filter_bookmarked),
|
|
|
- state = bookmarkedFilter,
|
|
|
- onClick = onBookmarkedFilterChanged,
|
|
|
- )
|
|
|
-}
|
|
|
-
|
|
|
-@Composable
|
|
|
-private fun SortPage(
|
|
|
- sortingMode: Long,
|
|
|
- sortDescending: Boolean,
|
|
|
- onItemSelected: (Long) -> Unit,
|
|
|
-) {
|
|
|
- SortItem(
|
|
|
- label = stringResource(R.string.sort_by_source),
|
|
|
- sortDescending = sortDescending.takeIf { sortingMode == Manga.CHAPTER_SORTING_SOURCE },
|
|
|
- onClick = { onItemSelected(Manga.CHAPTER_SORTING_SOURCE) },
|
|
|
- )
|
|
|
- SortItem(
|
|
|
- label = stringResource(R.string.sort_by_number),
|
|
|
- sortDescending = sortDescending.takeIf { sortingMode == Manga.CHAPTER_SORTING_NUMBER },
|
|
|
- onClick = { onItemSelected(Manga.CHAPTER_SORTING_NUMBER) },
|
|
|
- )
|
|
|
- SortItem(
|
|
|
- label = stringResource(R.string.sort_by_upload_date),
|
|
|
- sortDescending = sortDescending.takeIf { sortingMode == Manga.CHAPTER_SORTING_UPLOAD_DATE },
|
|
|
- onClick = { onItemSelected(Manga.CHAPTER_SORTING_UPLOAD_DATE) },
|
|
|
- )
|
|
|
-}
|
|
|
-
|
|
|
-@Composable
|
|
|
-private fun DisplayPage(
|
|
|
- displayMode: Long,
|
|
|
- onItemSelected: (Long) -> Unit,
|
|
|
-) {
|
|
|
- RadioItem(
|
|
|
- label = stringResource(R.string.show_title),
|
|
|
- selected = displayMode == Manga.CHAPTER_DISPLAY_NAME,
|
|
|
- onClick = { onItemSelected(Manga.CHAPTER_DISPLAY_NAME) },
|
|
|
- )
|
|
|
- RadioItem(
|
|
|
- label = stringResource(R.string.show_chapter_number),
|
|
|
- selected = displayMode == Manga.CHAPTER_DISPLAY_NUMBER,
|
|
|
- onClick = { onItemSelected(Manga.CHAPTER_DISPLAY_NUMBER) },
|
|
|
- )
|
|
|
-}
|