From 16a23f89a57bd843d538526d678a2ddb790bafcc Mon Sep 17 00:00:00 2001 From: arkon Date: Sun, 26 Feb 2023 16:58:36 -0500 Subject: [PATCH] Add explicit overflow menu options to refresh library category and manga chapters list Jetpack Compose treats mouse input differently than just mimicking a touch input, so dragging doesn't actually invoke the pull to refresh. If that changes in the future, we could consider removing these. Doesn't seem too necessary for the extensions list, so I skipped that. Closes #8455 (cherry picked from commit f03a83413689923633c8ebe5634b34c566733961) # Conflicts: # app/src/main/java/eu/kanade/presentation/manga/components/MangaToolbar.kt --- .../library/components/LibraryToolbar.kt | 10 ++ .../kanade/presentation/manga/MangaScreen.kt | 2 + .../manga/components/MangaToolbar.kt | 140 +++++++++--------- .../kanade/tachiyomi/ui/library/LibraryTab.kt | 3 +- i18n/src/main/res/values/strings.xml | 1 + 5 files changed, 88 insertions(+), 68 deletions(-) diff --git a/app/src/main/java/eu/kanade/presentation/library/components/LibraryToolbar.kt b/app/src/main/java/eu/kanade/presentation/library/components/LibraryToolbar.kt index 2f06de402..143f6bd8d 100644 --- a/app/src/main/java/eu/kanade/presentation/library/components/LibraryToolbar.kt +++ b/app/src/main/java/eu/kanade/presentation/library/components/LibraryToolbar.kt @@ -37,6 +37,7 @@ fun LibraryToolbar( onClickInvertSelection: () -> Unit, onClickFilter: () -> Unit, onClickRefresh: () -> Unit, + onClickGlobalUpdate: () -> Unit, onClickOpenRandomManga: () -> Unit, // SY --> onClickSyncExh: (() -> Unit)?, @@ -58,6 +59,7 @@ fun LibraryToolbar( onSearchQueryChange = onSearchQueryChange, onClickFilter = onClickFilter, onClickRefresh = onClickRefresh, + onClickGlobalUpdate = onClickGlobalUpdate, onClickOpenRandomManga = onClickOpenRandomManga, // SY --> onClickSyncExh = onClickSyncExh, @@ -74,6 +76,7 @@ fun LibraryRegularToolbar( onSearchQueryChange: (String?) -> Unit, onClickFilter: () -> Unit, onClickRefresh: () -> Unit, + onClickGlobalUpdate: () -> Unit, onClickOpenRandomManga: () -> Unit, // SY --> onClickSyncExh: (() -> Unit)?, @@ -110,6 +113,13 @@ fun LibraryRegularToolbar( OverflowMenu { closeMenu -> DropdownMenuItem( text = { Text(text = stringResource(R.string.pref_category_library_update)) }, + onClick = { + onClickGlobalUpdate() + closeMenu() + }, + ) + DropdownMenuItem( + text = { Text(text = stringResource(R.string.action_update_category)) }, onClick = { onClickRefresh() closeMenu() diff --git a/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt b/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt index 29999b6ec..946c59afc 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt @@ -342,6 +342,7 @@ private fun MangaScreenSmallImpl( onClickShare = onShareClicked, onClickDownload = onDownloadActionClicked, onClickEditCategory = onEditCategoryClicked, + onClickRefresh = onRefresh, onClickMigrate = onMigrateClicked, // SY --> onClickEditInfo = onEditInfoClicked.takeIf { state.manga.favorite }, @@ -638,6 +639,7 @@ fun MangaScreenLargeImpl( onClickShare = onShareClicked, onClickDownload = onDownloadActionClicked, onClickEditCategory = onEditCategoryClicked, + onClickRefresh = onRefresh, onClickMigrate = onMigrateClicked, // SY --> onClickEditInfo = onEditInfoClicked.takeIf { state.manga.favorite }, diff --git a/app/src/main/java/eu/kanade/presentation/manga/components/MangaToolbar.kt b/app/src/main/java/eu/kanade/presentation/manga/components/MangaToolbar.kt index aab5a1585..dc04c8aef 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/components/MangaToolbar.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/components/MangaToolbar.kt @@ -44,6 +44,7 @@ fun MangaToolbar( onClickShare: (() -> Unit)?, onClickDownload: ((DownloadAction) -> Unit)?, onClickEditCategory: (() -> Unit)?, + onClickRefresh: () -> Unit, onClickMigrate: (() -> Unit)?, // SY --> onClickEditInfo: (() -> Unit)?, @@ -115,74 +116,79 @@ fun MangaToolbar( Icon(Icons.Outlined.FilterList, contentDescription = stringResource(R.string.action_filter), tint = filterTint) } - if (listOfNotNull(onClickShare, onClickEditCategory, onClickMigrate, onClickEditInfo, onClickRecommend, onClickMergedSettings).isNotEmpty()) { - OverflowMenu { closeMenu -> - if (onClickEditCategory != null) { - DropdownMenuItem( - text = { Text(text = stringResource(R.string.action_edit_categories)) }, - onClick = { - onClickEditCategory() - closeMenu() - }, - ) - } - if (onClickMigrate != null) { - DropdownMenuItem( - text = { Text(text = stringResource(R.string.action_migrate)) }, - onClick = { - onClickMigrate() - closeMenu() - }, - ) - } - if (onClickShare != null) { - DropdownMenuItem( - text = { Text(text = stringResource(R.string.action_share)) }, - onClick = { - onClickShare() - closeMenu() - }, - ) - } - // SY --> - if (onClickMerge != null) { - DropdownMenuItem( - text = { Text(text = stringResource(R.string.merge)) }, - onClick = { - onClickMerge() - closeMenu() - }, - ) - } - if (onClickEditInfo != null) { - DropdownMenuItem( - text = { Text(text = stringResource(R.string.action_edit_info)) }, - onClick = { - onClickEditInfo() - closeMenu() - }, - ) - } - if (onClickRecommend != null) { - DropdownMenuItem( - text = { Text(text = stringResource(R.string.az_recommends)) }, - onClick = { - onClickRecommend() - closeMenu() - }, - ) - } - if (onClickMergedSettings != null) { - DropdownMenuItem( - text = { Text(text = stringResource(R.string.merge_settings)) }, - onClick = { - onClickMergedSettings() - closeMenu() - }, - ) - } - // SY <-- + OverflowMenu { closeMenu -> + DropdownMenuItem( + text = { Text(text = stringResource(R.string.action_webview_refresh)) }, + onClick = { + onClickRefresh() + closeMenu() + }, + ) + if (onClickEditCategory != null) { + DropdownMenuItem( + text = { Text(text = stringResource(R.string.action_edit_categories)) }, + onClick = { + onClickEditCategory() + closeMenu() + }, + ) } + if (onClickMigrate != null) { + DropdownMenuItem( + text = { Text(text = stringResource(R.string.action_migrate)) }, + onClick = { + onClickMigrate() + closeMenu() + }, + ) + } + if (onClickShare != null) { + DropdownMenuItem( + text = { Text(text = stringResource(R.string.action_share)) }, + onClick = { + onClickShare() + closeMenu() + }, + ) + } + // SY --> + if (onClickMerge != null) { + DropdownMenuItem( + text = { Text(text = stringResource(R.string.merge)) }, + onClick = { + onClickMerge() + closeMenu() + }, + ) + } + if (onClickEditInfo != null) { + DropdownMenuItem( + text = { Text(text = stringResource(R.string.action_edit_info)) }, + onClick = { + onClickEditInfo() + closeMenu() + }, + ) + } + if (onClickRecommend != null) { + DropdownMenuItem( + text = { Text(text = stringResource(R.string.az_recommends)) }, + onClick = { + onClickRecommend() + closeMenu() + }, + ) + } + if (onClickMergedSettings != null) { + DropdownMenuItem( + text = { Text(text = stringResource(R.string.merge_settings)) }, + onClick = { + onClickMergedSettings() + closeMenu() + }, + ) + } + // SY <-- } } }, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt index 718182aef..2d24d73cd 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt @@ -138,7 +138,8 @@ object LibraryTab : Tab { onClickSelectAll = { screenModel.selectAll(screenModel.activeCategoryIndex) }, onClickInvertSelection = { screenModel.invertSelection(screenModel.activeCategoryIndex) }, onClickFilter = { screenModel.showSettingsDialog() }, - onClickRefresh = { onClickRefresh(null) }, + onClickRefresh = { onClickRefresh(state.categories[screenModel.activeCategoryIndex]) }, + onClickGlobalUpdate = { onClickRefresh(null) }, onClickOpenRandomManga = { scope.launch { val randomItem = screenModel.getRandomLibraryItemForCurrentCategory() diff --git a/i18n/src/main/res/values/strings.xml b/i18n/src/main/res/values/strings.xml index 53cc42fcb..440a93f34 100755 --- a/i18n/src/main/res/values/strings.xml +++ b/i18n/src/main/res/values/strings.xml @@ -76,6 +76,7 @@ Disable all Edit Add + Update category Open random entry Add category Edit categories