From 3c3f5cf35d2f0d9dd926aa3df99ac632716b6826 Mon Sep 17 00:00:00 2001 From: arkon Date: Sun, 28 Mar 2021 16:25:53 -0400 Subject: [PATCH] Add crop borders shortcut (cherry picked from commit d501c02f8bdc666e5701518da2e0845d7b494e9e) # Conflicts: # app/src/main/res/layout/reader_activity.xml --- .../data/preference/PreferencesHelper.kt | 4 ++++ .../tachiyomi/ui/reader/ReaderActivity.kt | 14 ++++++++++++++ .../ui/reader/setting/ReadingModeType.kt | 5 +++++ .../main/res/drawable/ic_crop_free_24dp.xml | 9 +++++++++ app/src/main/res/layout/reader_activity.xml | 19 ++++++++++++++++--- 5 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 app/src/main/res/drawable/ic_crop_free_24dp.xml 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 97b1706a0..02d8d667d 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 @@ -36,6 +36,10 @@ operator fun Preference>.minusAssign(item: T) { set(get() - item) } +fun Preference.toggle() { + set(!get()) +} + class PreferencesHelper(val context: Context) { private val prefs = PreferenceManager.getDefaultSharedPreferences(context) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt index 7e28af82e..42fa4bd24 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt @@ -36,6 +36,7 @@ import eu.kanade.tachiyomi.data.notification.NotificationReceiver import eu.kanade.tachiyomi.data.notification.Notifications import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.asImmediateFlow +import eu.kanade.tachiyomi.data.preference.toggle import eu.kanade.tachiyomi.databinding.ReaderActivityBinding import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.model.Page @@ -484,6 +485,19 @@ class ReaderActivity : BaseRxActivity() .launchIn(lifecycleScope) */ + with(binding.actionCropBorders) { + setTooltip(R.string.pref_crop_borders) + + setOnClickListener { + val isPagerType = ReadingModeType.isPagerType(presenter.getMangaViewer()) + if (isPagerType) { + preferences.cropBorders().toggle() + } else { + preferences.cropBordersWebtoon().toggle() + } + } + } + with(binding.actionSettings) { setTooltip(R.string.action_settings) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReadingModeType.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReadingModeType.kt index 7e54c74c7..4f0c1a3f8 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReadingModeType.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReadingModeType.kt @@ -21,5 +21,10 @@ enum class ReadingModeType(val prefValue: Int, @StringRes val stringRes: Int, @D val current = fromPreference(preference) return current.next() } + + fun isPagerType(preference: Int): Boolean { + val mode = fromPreference(preference) + return mode == LEFT_TO_RIGHT || mode == RIGHT_TO_LEFT || mode == VERTICAL + } } } diff --git a/app/src/main/res/drawable/ic_crop_free_24dp.xml b/app/src/main/res/drawable/ic_crop_free_24dp.xml new file mode 100644 index 000000000..0b681872e --- /dev/null +++ b/app/src/main/res/drawable/ic_crop_free_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/reader_activity.xml b/app/src/main/res/layout/reader_activity.xml index d080332f5..811726b56 100755 --- a/app/src/main/res/layout/reader_activity.xml +++ b/app/src/main/res/layout/reader_activity.xml @@ -396,12 +396,25 @@ android:background="?selectableItemBackgroundBorderless" android:contentDescription="@string/custom_filter" android:padding="@dimen/material_layout_keylines_screen_edge_margin" - app:layout_constraintStart_toEndOf="@id/action_chapter_list" - app:layout_constraintEnd_toStartOf="@id/action_settings" + app:layout_constraintEnd_toStartOf="@id/action_crop_borders" + app:layout_constraintStart_toEndOf="@+id/action_chapter_list" app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/ic_public_24dp" app:tint="?attr/colorOnPrimary" /> + +