From ae7c421d29ddfb9978cfa74cd0fa66285534cf89 Mon Sep 17 00:00:00 2001 From: Cuong-Tran Date: Tue, 13 Aug 2024 02:00:19 +0800 Subject: [PATCH] ui: put Related titles in overflow close #248 --- .../main/java/eu/kanade/domain/ui/UiPreferences.kt | 2 ++ .../eu/kanade/presentation/manga/MangaScreen.kt | 10 ++++++++-- .../presentation/manga/components/MangaToolbar.kt | 14 ++++++++++++++ .../settings/screen/SettingsAppearanceScreen.kt | 7 +++++++ .../kanade/tachiyomi/ui/manga/MangaScreenModel.kt | 6 ++++++ .../src/commonMain/moko-resources/base/strings.xml | 2 ++ 6 files changed, 39 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt b/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt index 7ed83d0fc..01a110300 100644 --- a/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt +++ b/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt @@ -50,6 +50,8 @@ class UiPreferences( // KMK --> fun expandRelatedTitles() = preferenceStore.getBoolean("expand_related_titles", true) + fun relatedTitlesInOverflow() = preferenceStore.getBoolean("related_titles_in_overflow", false) + fun showHomeOnRelatedTitles() = preferenceStore.getBoolean("show_home_on_related_titles", true) // KMK <-- 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 f3d2ac418..c2fe620b8 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt @@ -456,6 +456,9 @@ private fun MangaScreenSmallImpl( onClickMigrate = onMigrateClicked, // SY --> onClickEditInfo = onEditInfoClicked.takeIf { state.manga.favorite }, + // KMK --> + onClickRelatedTitles = onRelatedMangasScreenClick.takeIf { state.showRelatedTitlesInOverflow }, + // KMK <-- onClickRecommend = onRecommendClicked.takeIf { state.showRecommendationsInOverflow }, onClickMergedSettings = onMergedSettingsClicked.takeIf { state.manga.source == MERGED_SOURCE_ID }, onClickMerge = onMergeClicked.takeIf { state.showMergeInOverflow }, @@ -652,7 +655,7 @@ private fun MangaScreenSmallImpl( } item { HorizontalDivider() } } - } else { + } else if (!state.showRelatedTitlesInOverflow) { item( key = MangaScreenItem.RELATED_TITLES, contentType = MangaScreenItem.RELATED_TITLES, @@ -854,6 +857,9 @@ private fun MangaScreenLargeImpl( onClickMigrate = onMigrateClicked, // SY --> onClickEditInfo = onEditInfoClicked.takeIf { state.manga.favorite }, + // KMK --> + onClickRelatedTitles = onRelatedMangasScreenClick.takeIf { state.showRelatedTitlesInOverflow }, + // KMK <-- onClickRecommend = onRecommendClicked.takeIf { state.showRecommendationsInOverflow }, onClickMergedSettings = onMergedSettingsClicked.takeIf { state.manga.source == MERGED_SOURCE_ID }, onClickMerge = onMergeClicked.takeIf { state.showMergeInOverflow }, @@ -1062,7 +1068,7 @@ private fun MangaScreenLargeImpl( } item { HorizontalDivider() } } - } else { + } else if (!state.showRelatedTitlesInOverflow) { item( key = MangaScreenItem.RELATED_TITLES, contentType = MangaScreenItem.RELATED_TITLES, 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 0e534eb6c..49ff0a4f9 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 @@ -37,6 +37,7 @@ import eu.kanade.tachiyomi.ui.manga.MangaScreen import eu.kanade.tachiyomi.util.system.isDevFlavor import kotlinx.collections.immutable.persistentListOf import tachiyomi.i18n.MR +import tachiyomi.i18n.kmk.KMR import tachiyomi.i18n.sy.SYMR import tachiyomi.presentation.core.i18n.stringResource import tachiyomi.presentation.core.theme.active @@ -57,6 +58,9 @@ fun MangaToolbar( onClickMigrate: (() -> Unit)?, // SY --> onClickEditInfo: (() -> Unit)?, + // KMK --> + onClickRelatedTitles: (() -> Unit)?, + // KMK <-- onClickRecommend: (() -> Unit)?, onClickMerge: (() -> Unit)?, onClickMergedSettings: (() -> Unit)?, @@ -206,6 +210,16 @@ fun MangaToolbar( ), ) } + // KMK --> + if (onClickRelatedTitles != null) { + add( + AppBar.OverflowAction( + title = stringResource(KMR.strings.pref_source_related_mangas), + onClick = onClickRelatedTitles, + ), + ) + } + // KMK <-- if (onClickRecommend != null) { add( AppBar.OverflowAction( diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt index 59abc2646..5938441c7 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt @@ -220,6 +220,7 @@ object SettingsAppearanceScreen : SearchableSettings { val previewsRowCount by uiPreferences.previewsRowCount().collectAsState() // KMK --> val sourcePreferences = remember { Injekt.get() } + val relatedTitlesInOverflow by uiPreferences.expandRelatedTitles().collectAsState() // KMK <-- return Preference.PreferenceGroup( @@ -236,6 +237,12 @@ object SettingsAppearanceScreen : SearchableSettings { subtitle = stringResource(KMR.strings.pref_expand_related_titles_summary), enabled = sourcePreferences.relatedMangas().get(), ), + Preference.PreferenceItem.SwitchPreference( + pref = uiPreferences.relatedTitlesInOverflow(), + enabled = !relatedTitlesInOverflow, + title = stringResource(KMR.strings.put_related_titles_in_overflow), + subtitle = stringResource(KMR.strings.put_related_titles_in_overflow_summary), + ), Preference.PreferenceItem.SwitchPreference( pref = uiPreferences.showHomeOnRelatedTitles(), title = stringResource(KMR.strings.pref_show_home_on_related_titles), diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt index 680aa71a7..f4eca1916 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt @@ -445,6 +445,9 @@ class MangaScreenModel( excludedScanlators = getExcludedScanlators.await(mangaId).toImmutableSet(), isRefreshingData = needRefreshInfo || needRefreshChapter, dialog = null, + // KMK --> + showRelatedTitlesInOverflow = uiPreferences.relatedTitlesInOverflow().get(), + // KMK <-- // SY --> showRecommendationsInOverflow = uiPreferences.recommendsInOverflow().get(), showMergeInOverflow = uiPreferences.mergeInOverflow().get(), @@ -1912,6 +1915,9 @@ class MangaScreenModel( // SY --> val meta: RaisedSearchMetadata?, val mergedData: MergedMangaData?, + // KMK --> + val showRelatedTitlesInOverflow: Boolean, + // KMK <-- val showRecommendationsInOverflow: Boolean, val showMergeInOverflow: Boolean, val showMergeWithAnother: Boolean, diff --git a/i18n-kmk/src/commonMain/moko-resources/base/strings.xml b/i18n-kmk/src/commonMain/moko-resources/base/strings.xml index 236a099a6..f4c04d2af 100644 --- a/i18n-kmk/src/commonMain/moko-resources/base/strings.xml +++ b/i18n-kmk/src/commonMain/moko-resources/base/strings.xml @@ -27,6 +27,8 @@ Content Expand Related titles If turned off, related titles won\'t automatically load & show expanded + Related titles in overflow + Put the Related titles button in the overflow menu instead of on the entry page Home from Related titles Show an icon while browsing Related titles to navigate directly back to Home Cloudflare