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 --> // KMK -->
fun expandRelatedTitles() = preferenceStore.getBoolean("expand_related_titles", true) 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) fun showHomeOnRelatedTitles() = preferenceStore.getBoolean("show_home_on_related_titles", true)
// KMK <-- // KMK <--

View file

@ -456,6 +456,9 @@ private fun MangaScreenSmallImpl(
onClickMigrate = onMigrateClicked, onClickMigrate = onMigrateClicked,
// SY --> // SY -->
onClickEditInfo = onEditInfoClicked.takeIf { state.manga.favorite }, onClickEditInfo = onEditInfoClicked.takeIf { state.manga.favorite },
// KMK -->
onClickRelatedTitles = onRelatedMangasScreenClick.takeIf { state.showRelatedTitlesInOverflow },
// KMK <--
onClickRecommend = onRecommendClicked.takeIf { state.showRecommendationsInOverflow }, onClickRecommend = onRecommendClicked.takeIf { state.showRecommendationsInOverflow },
onClickMergedSettings = onMergedSettingsClicked.takeIf { state.manga.source == MERGED_SOURCE_ID }, onClickMergedSettings = onMergedSettingsClicked.takeIf { state.manga.source == MERGED_SOURCE_ID },
onClickMerge = onMergeClicked.takeIf { state.showMergeInOverflow }, onClickMerge = onMergeClicked.takeIf { state.showMergeInOverflow },
@ -652,7 +655,7 @@ private fun MangaScreenSmallImpl(
} }
item { HorizontalDivider() } item { HorizontalDivider() }
} }
} else { } else if (!state.showRelatedTitlesInOverflow) {
item( item(
key = MangaScreenItem.RELATED_TITLES, key = MangaScreenItem.RELATED_TITLES,
contentType = MangaScreenItem.RELATED_TITLES, contentType = MangaScreenItem.RELATED_TITLES,
@ -854,6 +857,9 @@ private fun MangaScreenLargeImpl(
onClickMigrate = onMigrateClicked, onClickMigrate = onMigrateClicked,
// SY --> // SY -->
onClickEditInfo = onEditInfoClicked.takeIf { state.manga.favorite }, onClickEditInfo = onEditInfoClicked.takeIf { state.manga.favorite },
// KMK -->
onClickRelatedTitles = onRelatedMangasScreenClick.takeIf { state.showRelatedTitlesInOverflow },
// KMK <--
onClickRecommend = onRecommendClicked.takeIf { state.showRecommendationsInOverflow }, onClickRecommend = onRecommendClicked.takeIf { state.showRecommendationsInOverflow },
onClickMergedSettings = onMergedSettingsClicked.takeIf { state.manga.source == MERGED_SOURCE_ID }, onClickMergedSettings = onMergedSettingsClicked.takeIf { state.manga.source == MERGED_SOURCE_ID },
onClickMerge = onMergeClicked.takeIf { state.showMergeInOverflow }, onClickMerge = onMergeClicked.takeIf { state.showMergeInOverflow },
@ -1062,7 +1068,7 @@ private fun MangaScreenLargeImpl(
} }
item { HorizontalDivider() } item { HorizontalDivider() }
} }
} else { } else if (!state.showRelatedTitlesInOverflow) {
item( item(
key = MangaScreenItem.RELATED_TITLES, key = MangaScreenItem.RELATED_TITLES,
contentType = 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 eu.kanade.tachiyomi.util.system.isDevFlavor
import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.persistentListOf
import tachiyomi.i18n.MR import tachiyomi.i18n.MR
import tachiyomi.i18n.kmk.KMR
import tachiyomi.i18n.sy.SYMR import tachiyomi.i18n.sy.SYMR
import tachiyomi.presentation.core.i18n.stringResource import tachiyomi.presentation.core.i18n.stringResource
import tachiyomi.presentation.core.theme.active import tachiyomi.presentation.core.theme.active
@ -57,6 +58,9 @@ fun MangaToolbar(
onClickMigrate: (() -> Unit)?, onClickMigrate: (() -> Unit)?,
// SY --> // SY -->
onClickEditInfo: (() -> Unit)?, onClickEditInfo: (() -> Unit)?,
// KMK -->
onClickRelatedTitles: (() -> Unit)?,
// KMK <--
onClickRecommend: (() -> Unit)?, onClickRecommend: (() -> Unit)?,
onClickMerge: (() -> Unit)?, onClickMerge: (() -> Unit)?,
onClickMergedSettings: (() -> 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) { if (onClickRecommend != null) {
add( add(
AppBar.OverflowAction( AppBar.OverflowAction(

View file

@ -220,6 +220,7 @@ object SettingsAppearanceScreen : SearchableSettings {
val previewsRowCount by uiPreferences.previewsRowCount().collectAsState() val previewsRowCount by uiPreferences.previewsRowCount().collectAsState()
// KMK --> // KMK -->
val sourcePreferences = remember { Injekt.get<SourcePreferences>() } val sourcePreferences = remember { Injekt.get<SourcePreferences>() }
val relatedTitlesInOverflow by uiPreferences.expandRelatedTitles().collectAsState()
// KMK <-- // KMK <--
return Preference.PreferenceGroup( return Preference.PreferenceGroup(
@ -236,6 +237,12 @@ object SettingsAppearanceScreen : SearchableSettings {
subtitle = stringResource(KMR.strings.pref_expand_related_titles_summary), subtitle = stringResource(KMR.strings.pref_expand_related_titles_summary),
enabled = sourcePreferences.relatedMangas().get(), 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( Preference.PreferenceItem.SwitchPreference(
pref = uiPreferences.showHomeOnRelatedTitles(), pref = uiPreferences.showHomeOnRelatedTitles(),
title = stringResource(KMR.strings.pref_show_home_on_related_titles), title = stringResource(KMR.strings.pref_show_home_on_related_titles),

View file

@ -445,6 +445,9 @@ class MangaScreenModel(
excludedScanlators = getExcludedScanlators.await(mangaId).toImmutableSet(), excludedScanlators = getExcludedScanlators.await(mangaId).toImmutableSet(),
isRefreshingData = needRefreshInfo || needRefreshChapter, isRefreshingData = needRefreshInfo || needRefreshChapter,
dialog = null, dialog = null,
// KMK -->
showRelatedTitlesInOverflow = uiPreferences.relatedTitlesInOverflow().get(),
// KMK <--
// SY --> // SY -->
showRecommendationsInOverflow = uiPreferences.recommendsInOverflow().get(), showRecommendationsInOverflow = uiPreferences.recommendsInOverflow().get(),
showMergeInOverflow = uiPreferences.mergeInOverflow().get(), showMergeInOverflow = uiPreferences.mergeInOverflow().get(),
@ -1912,6 +1915,9 @@ class MangaScreenModel(
// SY --> // SY -->
val meta: RaisedSearchMetadata?, val meta: RaisedSearchMetadata?,
val mergedData: MergedMangaData?, val mergedData: MergedMangaData?,
// KMK -->
val showRelatedTitlesInOverflow: Boolean,
// KMK <--
val showRecommendationsInOverflow: Boolean, val showRecommendationsInOverflow: Boolean,
val showMergeInOverflow: Boolean, val showMergeInOverflow: Boolean,
val showMergeWithAnother: Boolean, val showMergeWithAnother: Boolean,

View file

@ -27,6 +27,8 @@
<string name="pref_theme_cover_based_style_content">Content</string> <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">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="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">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="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> <string name="theme_cloudflare">Cloudflare</string>