ui: put Related titles in overflow

close #248
This commit is contained in:
Cuong-Tran 2024-08-13 02:00:19 +08:00
parent eb4d5fcbf0
commit ae7c421d29
No known key found for this signature in database
GPG key ID: 733AA7624B9315C2
6 changed files with 39 additions and 2 deletions

View file

@ -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 <--

View file

@ -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,

View file

@ -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(

View file

@ -220,6 +220,7 @@ object SettingsAppearanceScreen : SearchableSettings {
val previewsRowCount by uiPreferences.previewsRowCount().collectAsState()
// KMK -->
val sourcePreferences = remember { Injekt.get<SourcePreferences>() }
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),

View file

@ -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,

View file

@ -27,6 +27,8 @@
<string name="pref_theme_cover_based_style_content">Content</string>
<string name="pref_expand_related_titles">Expand Related titles</string>
<string name="pref_expand_related_titles_summary">If turned off, related titles won\'t automatically load &amp; show expanded</string>
<string name="put_related_titles_in_overflow">Related titles in overflow</string>
<string name="put_related_titles_in_overflow_summary">Put the Related titles button in the overflow menu instead of on the entry page</string>
<string name="pref_show_home_on_related_titles">Home from Related titles</string>
<string name="pref_show_home_on_related_titles_summary">Show an icon while browsing Related titles to navigate directly back to Home</string>
<string name="theme_cloudflare">Cloudflare</string>