Add crop borders shortcut

(cherry picked from commit d501c02f8bdc666e5701518da2e0845d7b494e9e)

# Conflicts:
#	app/src/main/res/layout/reader_activity.xml
This commit is contained in:
arkon 2021-03-28 16:25:53 -04:00 committed by Jobobby04
parent 7407e22b4e
commit 3c3f5cf35d
5 changed files with 48 additions and 3 deletions

View File

@ -36,6 +36,10 @@ operator fun <T> Preference<Set<T>>.minusAssign(item: T) {
set(get() - item)
}
fun Preference<Boolean>.toggle() {
set(!get())
}
class PreferencesHelper(val context: Context) {
private val prefs = PreferenceManager.getDefaultSharedPreferences(context)

View File

@ -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<ReaderActivityBinding, ReaderPresenter>()
.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)

View File

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

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/black"
android:pathData="M3,5v4h2L5,5h4L9,3L5,3c-1.1,0 -2,0.9 -2,2zM5,15L3,15v4c0,1.1 0.9,2 2,2h4v-2L5,19v-4zM19,19h-4v2h4c1.1,0 2,-0.9 2,-2v-4h-2v4zM19,3h-4v2h4v4h2L21,5c0,-1.1 -0.9,-2 -2,-2z" />
</vector>

View File

@ -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" />
<ImageButton
android:id="@+id/action_crop_borders"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="?selectableItemBackgroundBorderless"
android:contentDescription="@string/pref_crop_borders"
android:padding="@dimen/material_layout_keylines_screen_edge_margin"
app:layout_constraintEnd_toStartOf="@id/action_settings"
app:layout_constraintStart_toEndOf="@+id/action_web_view"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_crop_free_24dp"
app:tint="?attr/colorOnPrimary" />
<ImageButton
android:id="@+id/action_settings"
android:layout_width="wrap_content"
@ -410,7 +423,7 @@
android:contentDescription="@string/action_settings"
android:padding="@dimen/material_layout_keylines_screen_edge_margin"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/action_web_view"
app:layout_constraintStart_toEndOf="@id/action_crop_borders"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_settings_24dp"
app:tint="?attr/colorOnPrimary" />