From 8e94afb9c16088841aea76444cc6a7a523a9364b Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Sun, 19 Jul 2020 19:22:08 -0400 Subject: [PATCH] Add a option to put the recommendations into the overflow menu instead of the manga page --- .../eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt | 2 ++ .../kanade/tachiyomi/data/preference/PreferencesHelper.kt | 2 ++ .../java/eu/kanade/tachiyomi/ui/manga/MangaController.kt | 5 +++++ .../tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt | 5 ++++- .../tachiyomi/ui/setting/SettingsGeneralController.kt | 7 +++++++ app/src/main/res/menu/manga.xml | 6 ++++++ app/src/main/res/values/strings_sy.xml | 2 ++ 7 files changed, 28 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt index 8940d068b..c22aaa2e4 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt @@ -268,4 +268,6 @@ object PreferenceKeys { const val sources_tab_source_categories = "sources_tab_source_categories" const val sourcesSort = "sources_sort" + + const val recommendsInOverflow = "recommends_in_overflow" } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt index f43c6fb1c..01a0f7c1c 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt @@ -368,4 +368,6 @@ class PreferencesHelper(val context: Context) { fun sourcesTabSourcesInCategories() = flowPrefs.getStringSet(Keys.sources_tab_source_categories, mutableSetOf()) fun sourceSorting() = flowPrefs.getInt(Keys.sourcesSort, 0) + + fun recommendsInOverflow() = flowPrefs.getBoolean(Keys.recommendsInOverflow, false) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt index 22e022c3d..a42a77e32 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt @@ -322,6 +322,7 @@ class MangaController : // SY --> if (presenter.manga.favorite) menu.findItem(R.id.action_edit).isVisible = true + if (preferences.recommendsInOverflow().get()) menu.findItem(R.id.action_recommend).isVisible = true // SY <-- } @@ -338,6 +339,10 @@ class MangaController : ) editMangaDialog?.showDialog(router) } + + R.id.action_recommend -> { + openRecommends() + } // SY <-- R.id.action_edit_categories -> onCategoriesClick() diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt index 35d33d765..43a7f3fb8 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt @@ -17,6 +17,7 @@ import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.glide.GlideApp import eu.kanade.tachiyomi.data.glide.MangaThumbnail import eu.kanade.tachiyomi.data.glide.toMangaThumbnail +import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.databinding.MangaInfoHeaderBinding import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceManager @@ -46,6 +47,7 @@ import reactivecircus.flowbinding.android.view.clicks import reactivecircus.flowbinding.android.view.longClicks import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get +import uy.kohesive.injekt.injectLazy class MangaInfoHeaderAdapter( private val controller: MangaController, @@ -57,6 +59,7 @@ class MangaInfoHeaderAdapter( private var source: Source = controller.presenter.source private var trackCount: Int = 0 // SY --> + private val preferences: PreferencesHelper by injectLazy() private var meta: RaisedSearchMetadata? = controller.presenter.meta // SY <-- @@ -243,7 +246,7 @@ class MangaInfoHeaderAdapter( // EXH --> if (controller.smartSearchConfig == null) { - binding.recommendBtn.visible() + binding.recommendBtn.visibleIf { !preferences.recommendsInOverflow().get() } binding.recommendBtn.clicks() .onEach { controller.openRecommends() } .launchIn(scope) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt index 1fa860840..780c08c00 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt @@ -267,6 +267,13 @@ class SettingsGeneralController : SettingsController() { summaryRes = R.string.auto_solve_captchas_summary defaultValue = false } + + switchPreference { + key = Keys.recommendsInOverflow + titleRes = R.string.put_recommends_in_overflow + summaryRes = R.string.put_recommends_in_overflow_summary + defaultValue = false + } } // <-- EXH } diff --git a/app/src/main/res/menu/manga.xml b/app/src/main/res/menu/manga.xml index 635ebcbff..7d0468e18 100644 --- a/app/src/main/res/menu/manga.xml +++ b/app/src/main/res/menu/manga.xml @@ -51,4 +51,10 @@ android:title="@string/action_edit" android:visible="false" app:showAsAction="never" /> + + diff --git a/app/src/main/res/values/strings_sy.xml b/app/src/main/res/values/strings_sy.xml index 386a4420a..5c06b583d 100644 --- a/app/src/main/res/values/strings_sy.xml +++ b/app/src/main/res/values/strings_sy.xml @@ -136,6 +136,8 @@ Expand all search filters by default Automatically solve captcha Use HIGHLY EXPERIMENTAL automatic ReCAPTCHA solver. Will be grayed out if unsupported by your device. + Recommendations in overflow + Put the recommendations button in the overflow menu instead of on the manga page Use last saved pre-migration preferences and sources to mass migrate